[DllImport("user32.dll")]
private static extern IntPtr GetDC(IntPtr hwnd); [DllImport("gdi32.dll")]
private static extern int GetPixel(IntPtr hdc, Point p); public static Color getColor(Point p)
{ // Point p = new Point(MousePosition.X, MousePosition.Y);//取置顶点坐标
IntPtr hdc = GetDC(new IntPtr(0));//取到设备场景(0就是全屏的设备场景)
int c = GetPixel(hdc, p);//取指定点颜色
int r = (c & 0xFF);//转换R
int g = (c & 0xFF00) / 256;//转换G
int b = (c & 0xFF0000) / 65536;//转换B
// pictureBox1.BackColor = Color.FromArgb(r, g, b);
return Color.FromArgb(r, g, b); }
测试例子:
private void button1_Click(object sender, EventArgs e)
{
//测试X在200,Y在120 到500 的颜是否不等于 Color.FromArgb(255, 246, 246, 246);
string d = DateTime.Now.ToLongTimeString();
Color cl = Color.FromArgb(255, 246, 246, 246);
Point p = new Point(200,0);
for (int h = 120; h < 500; h+=8) {
p.Y = h; if(getColor(p).Equals(cl)==false ){ Text =""+ h;
break;
} } Text = d +":"+ DateTime.Now.ToLongTimeString() +" "+ p ; }