C# 获取鼠标在屏幕中的颜色和位置
2014-10-22 10:35
2106 查看
1.问题思路
想做一个能够获取鼠标的屏幕坐标的程序,最初使用Form的MouseMove事件响应函数,接着问题出现了。由于Form的所有鼠标事件响应函数要求鼠标必须在Form窗体内操作才能触发,而我的要求是鼠标在屏幕上任何位置移动都能显示鼠标的坐标。因此只能另外想别的办法了。最后借助Timer(计时器)可以很好地解决问题。使用MousePosition获取屏幕坐标,并借助Timer来动态更新显示鼠标坐标。鼠标所在位置的屏幕颜色则通过win32函数来实现。
2.程序演示:
3.CSharp代码:
public Form1() { InitializeComponent(); } [DllImport("user32.dll")]//取设备场景 private static extern IntPtr GetDC(IntPtr hwnd);//返回设备场景句柄 [DllImport("gdi32.dll")]//取指定点颜色 private static extern int GetPixel(IntPtr hdc, Point p); private void Form1_Load(object sender, EventArgs e) { Timer tim = new Timer(); tim.Interval = 1; tim.Tick += tim_Tick; tim.Start(); } private void tim_Tick(object sender, EventArgs e) { 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); this.Text = "(" + p.X + "," + p.Y + ")"; } }
相关文章推荐
- C#简单获取屏幕鼠标坐标点颜色
- C# 如何获取鼠标在屏幕上的位置,不论程序是否为活动状态
- c# 获取鼠标对于屏幕的位置
- C#_动态获取鼠标位置的颜色
- C#获取屏幕鼠标所指点的颜色
- c# 获取鼠标对于屏幕的位置
- C#简单获取屏幕鼠标坐标点颜色方法介绍
- C#动态获取鼠标位置的颜色
- C#简单获取屏幕鼠标坐标点颜色方法介绍
- C#动态获取当前屏幕中光标所在位置的颜色
- C#动态获取鼠标位置的颜色
- C# 获取光标在屏幕上的位置
- 动态获取当前屏幕中光标所在位置的颜色
- .NET获取当前鼠标所在位置像素的颜色
- C#任意位置 模拟鼠标 点击 事件 并获取 鼠标 位置 源码
- 动态获取当前屏幕中光标所在位置的颜色
- [转] 动态获取当前屏幕中光标所在位置的颜色
- WPF中获取鼠标相对于屏幕的位置——出自《IT168》
- VC获取屏幕上任意点位置的颜色
- 使用C#获取鼠标所指像素的颜色