当前位置 : 主页 > 编程语言 > c语言 >

C#获取屏幕鼠标坐标点颜色

来源:互联网 收集:自由互联 发布时间:2021-06-25
[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,
[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);           }

  测试例子:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 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 ;   }
网友评论