C#实现对鼠标的操作
2015-12-29 22:26
711 查看
C#实现对鼠标的操作
本文主要给大家展示的是怎么用C#实现对鼠标的操作,有是否在窗体上显示鼠标、把鼠标移动到指定位置、获取鼠标的坐标等。下面将介绍具体操作:
开始是一些参数定义:
然后定义一些从非托管DLL导出来的函数:
源码资源:http://download.csdn.net/detail/laozhuxinlu/9382869
本文主要给大家展示的是怎么用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
相关文章推荐
- C#实现鼠标的自动循环指定操作
- C# 32位程序访问64位注册表
- C#定时器的实现
- 浅谈C#委托
- 【VS调试】C#读写Windows 7注册表时抛出“不允许所请求的注册表访问权”的解决办法
- C#难点逐个击破3params数组参数
- C#难点逐个击破2out返回参数
- 关于64位操作系统使用C#访问注册表失败的问题
- C#之数组与集合
- C# winform 编写一键排班软件时遇到的问题
- C# winform Datagridview 标题居中
- C# BackgroundWorker 异步控件 Demo示例
- c#window服务程序
- [.NET源码] C#制作的一套在线更新软件系统
- c# 方法重载
- C#中this关键字的使用
- C#中的转译字符以及字符串前面@的作用
- C# 给word文档添加水印
- C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
- 一小时学会C# 6