C#获取屏幕鼠标所指点的颜色
Posted 落枫飘飘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#获取屏幕鼠标所指点的颜色相关的知识,希望对你有一定的参考价值。
有时候要获取屏幕某一点的坐标颜色值,可以如下实现:
在VS2012中创建一个C#的Windows窗口应用程序,然后在Form上添加PictureBox和Button两个控件,并加入以下代码。
//需要这个命名空间: //using System.Runtime.InteropServices; [DllImport("user32.dll")]//取设备场景 private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 [DllImport("gdi32.dll")]//取指定点颜色 private static extern int GetPixel(IntPtr hdc, Point p); private void button1_Click(object sender, EventArgs e) { Timer tim = new Timer(); tim.Interval = 1; tim.Tick += delegate { 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); }; tim.Start(); }
运行后点击Button移动鼠标就能获得屏幕点的坐标了。
以上是关于C#获取屏幕鼠标所指点的颜色的主要内容,如果未能解决你的问题,请参考以下文章