C#中怎么用代码去控制鼠标的移动轨迹
在C#WinForm应用程序当中,不去动鼠标,让代码去控制鼠标移动。当然是在我们开发的那个应用程序界面上。请详细给出代码,注意注释,谢谢!...
在C# WinForm应用程序当中,不去动鼠标,让代码去控制鼠标移动。当然是在我们开发的那个应用程序界面上。请详细给出代码,注意注释,谢谢!
展开
1个回答
推荐于2017-11-25
展开全部
在代码中加入以下外部函数声明:
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags,int dx,int dy, int cButtons, int dwExtraInfo);
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;
然后就可以通过以下代码来实现鼠标移动的控制了:
mouse_event(MOUSEEVENTF_MOVE,x,y,0,0); //x,y是移动到的坐标,这个需要你自己计算哦!
如果你想移动出一条轨迹来,就要把轨迹上每个点的坐标都计算出来,都用上面这条代码来执行一下。
如果要实现单击,就把 MOUSEEVENTF_MOVE 删了,用两条语句,分别 MOUSEEVENTF_LEFTDOWN 和 MOUSEEVENTF_LEFTUP 来模拟鼠标按下和抬起,这就是一个完整的单击。
如果要双击某处,就把单击重复一次,LEFTDOWN LEFTUP 再 LEFTDOWN LEFTUP,一共四句哦!
希望能帮到你,祝你成功!
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags,int dx,int dy, int cButtons, int dwExtraInfo);
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;
然后就可以通过以下代码来实现鼠标移动的控制了:
mouse_event(MOUSEEVENTF_MOVE,x,y,0,0); //x,y是移动到的坐标,这个需要你自己计算哦!
如果你想移动出一条轨迹来,就要把轨迹上每个点的坐标都计算出来,都用上面这条代码来执行一下。
如果要实现单击,就把 MOUSEEVENTF_MOVE 删了,用两条语句,分别 MOUSEEVENTF_LEFTDOWN 和 MOUSEEVENTF_LEFTUP 来模拟鼠标按下和抬起,这就是一个完整的单击。
如果要双击某处,就把单击重复一次,LEFTDOWN LEFTUP 再 LEFTDOWN LEFTUP,一共四句哦!
希望能帮到你,祝你成功!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询