我在 C# 上做一个颜色选择器,我想要 GetPixel 函数,捕获我所有的窗口,所以我可以用来捕获我的窗口上的任何颜色,不管它是什么窗口,(电子邮件、图像或任何东西别的)。
我怎样才能做到这一点?
我有一个图片框来放颜色。
这篇博文似乎提供了一个解决方案。本质上,您运行以下代码以从鼠标在屏幕上的任何位置获取颜色:
IntPtr hdc = GetDC(IntPtr.Zero);
uint pixel = GetPixel(hdc, currentPoint.X, currentPoint.Y);
ReleaseDC(IntPtr.Zero, hdc);
Color color = Color.FromArgb((int)(pixel & 0x000000FF),
(int)(pixel & 0x0000FF00) >> 8,
(int)(pixel & 0x00FF0000) >> 16);
我不确定我应该在这里复制多少,但是如果您从该页面下载源代码,它应该会回答您的一堆问题。
而且,如果这不起作用,请查看以下答案:https ://stackoverflow.com/a/1483963/1043380