C#实现对鼠标的操作
本文主要给大家展示的是怎么用C#实现对鼠标的操作,有是否在窗体上显示鼠标、把鼠标移动到指定位置、获取鼠标的坐标等。下面将介绍具体操作:
开始是一些参数定义:
//dwFlags参数定义
const int MOUSEEVENTF_MOVE = 0x0001; // 移动鼠标
const int MOUSEEVENTF_LEFTDOWN = 0x0002; //模拟鼠标左键按下
const int MOUSEEVENTF_LEFTUP = 0x0004; //模拟鼠标左键抬起
const int MOUSEEVENTF_RIGHTDOWN = 0x0008; //模拟鼠标右键按下
const int MOUSEEVENTF_RIGHTUP = 0x0010; //模拟鼠标右键抬起
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;// 模拟鼠标中键按下
const int MOUSEEVENTF_MIDDLEUP = 0x0040; //模拟鼠标中键抬起
const int MOUSEEVENTF_ABSOLUTE = 0x8000; //标示是否采用绝对坐标。不采用绝对坐标的话(0,0)表示的是该鼠标当时的位置
然后定义一些从非托管DLL导出来的函数:
//是鼠标自动移动到某个位置
[DllImport("user32.dll", EntryPoint = "SetCursorPos")]
public extern static bool SetCursorPos(int x, int y);
//获取鼠标当前的位置
[StructLayout(LayoutKind.Sequential)]
public struct POINT
{
public int X;
public int Y;
}
[DllImport("User32")]
public extern static bool GetCursorPos(out POINT p);
//是否显示鼠标箭头
[DllImport("User32")]
public extern static int ShowCursor(bool bShow);
//调用系统函数 模拟鼠标事件函数
[DllImport("user32", EntryPoint = "mouse_event")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
接下来,就能通过代码实现对鼠标的一些操作了,下面展示的是一个例子:
//是鼠标自动到(100,100)位置
SetCursorPos(100,100);
//获取当前鼠标的位置
POINT p = new POINT();
GetCursorPos(out p);
textBox1.Text = "" + p.X + "//" + p.Y;
//是否显示鼠标(true、false) 注:仅在该软件的界面上是否显示鼠标
ShowCursor(false);
//移动鼠标到屏幕的(0,0)
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, 0, 0, 0, 0);
//移动鼠标到屏幕的(0,0)并左键单击
mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE |
MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
源码资源:http://download.csdn.net/detail/laozhuxinlu/9382869
版权声明:本文为laozhuxinlu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。