Nope, je moet wel eerst ff kijken op welk scherm de muispointer is.sig69 schreef op maandag 05 juli 2010 @ 10:32:
C#:
1 2 Bitmap image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb); Graphics.FromImage(image).CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
Gaat dat wel goed op multi monitor setups?
Dit werkt:
C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| public Color GetColorFromPoint(Point point) { var scr = Screen.PrimaryScreen; if (Screen.AllScreens.Length > 1) { foreach (var s in Screen.AllScreens) { if (point.X > s.Bounds.X && point.X < s.Bounds.X + s.Bounds.Width && point.Y > s.Bounds.Y && point.Y < s.Bounds.Y + s.Bounds.Height) { scr = s; } } } var image = new Bitmap(scr.Bounds.Width, scr.Bounds.Height, PixelFormat.Format32bppArgb); Graphics.FromImage(image).CopyFromScreen(scr.Bounds.X, scr.Bounds.Y, 0, 0, scr.Bounds.Size, CopyPixelOperation.SourceCopy); return image.GetPixel(point.X - scr.Bounds.X, point.Y - scr.Bounds.Y); } |
[ Voor 49% gewijzigd door Verwijderd op 05-07-2010 11:36 . Reden: code omgezet in een procedure. ]