前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >简单的WinForm模拟鼠标操作

简单的WinForm模拟鼠标操作

原创
作者头像
谭广健
发布2022-08-22 16:46:36
1.5K0
发布2022-08-22 16:46:36
举报
文章被收录于专栏:谭广健的专栏

需要做一个类似按键精灵的软件,通过后台数据进行控制鼠标对桌面上的图标进行自动点击控制。目前只是打通了鼠标的操作,还需要将程序做成可以后台运行及自动隐藏到右下角。先将鼠标移动和点击的方法记录下来以备以后的使用。。

1、引入鼠标的操作。

代码语言:javascript
复制
        //-----------------------
        [System.Runtime.InteropServices.DllImport("user32")]
        public static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
        //移动鼠标 
        public const int MOUSEEVENTF_MOVE = 0x0001;
        //模拟鼠标左键按下 
        public const int MOUSEEVENTF_LEFTDOWN = 0x0002;
        //模拟鼠标左键抬起 
        public const int MOUSEEVENTF_LEFTUP = 0x0004;
        //模拟鼠标右键按下 
        public const int MOUSEEVENTF_RIGHTDOWN = 0x0008;
        //模拟鼠标右键抬起 
        public const int MOUSEEVENTF_RIGHTUP = 0x0010;
        //模拟鼠标中键按下 
        public const int MOUSEEVENTF_MIDDLEDOWN = 0x0020;
        //模拟鼠标中键抬起 
        public const int MOUSEEVENTF_MIDDLEUP = 0x0040;
        //标示是否采用绝对坐标 
        public const int MOUSEEVENTF_ABSOLUTE = 0x8000;
        [DllImport("user32.dll")]
        public static extern bool SetCursorPos(int X, int Y);
        //-----------------------

2、调用鼠标操作

这里列举2个,一个是鼠标的移动和鼠标的双击。

代码语言:javascript
复制
  SetCursorPos(118,342);//移动鼠标的X Y轴
  mouse_event(MOUSEEVENTF_RIGHTDOWN| MOUSEEVENTF_RIGHTDOWN, 118,342, 0, 0);//模拟鼠标的移动并双击

最后,如何获取鼠标的坐标,这里也给一下思路和代码吧。

首先设置一个定时器timer1_Tick,将鼠标的坐标记录下来并且显示。

代码语言:javascript
复制
   Point mousePosition = Control.MousePosition;
   richTextBox1.Text = string.Format("X:{0}  Y:{1}", mousePosition.X, mousePosition.Y);

然后记得启用这个定时器:

代码语言:javascript
复制
  timer1.Interval = 100;
  timer1.Start();

OK,以上就是最简单的模拟鼠标操作的程序。当然要想深入点可以自行再研究。例如:先通过快捷方式回到桌面,在点击桌面的图片;也可以加个图标比对看看获取的图标是否符合再运行。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档