网站首页 > 博客文章 正文
前言
上一篇写到《Qt如何实现模拟键盘按键?》,既然程序可以模拟键盘按键,那一定也能模拟鼠标点击吧。果然很容易就找到了mouse_event这个api。不仅可以模拟鼠标点击,还能模拟鼠标移动,滚轮滚动等。
关于mouse_event
mouse_event没有返回值,有5个参数。第一个参数就是操作鼠标的标志(如鼠标左键按下,右键按下等),可选值
第二和第三个参数很明显就是坐标值,如果第一个参数设置了MOUSEEVENTF_ABSOLUTE则表示绝对坐标,否则是相对坐标。你四个参数表示鼠标滚轮滚动的值,如果第一个参数为MOUSEEVENTF_WHEEL才有用。最后一个参数表示鼠标事件的附加信息,不知道有啥用。
关于相对坐标和绝对坐标的差异:如果是相对坐标(即没有设置MOUSEEVENTF_ABSOLUTE)那第二和第三个参数的单位就是像素。如果是绝对坐标(即设置了MOUSEEVENTF_ABSOLUTE)需要进行换算。dx和dy的取值范围都是0 ~ 65535(单位不是像素)。我们需要将目标坐标转换为到dx和dy取值范围中的某一个值。假设屏幕分辨率为1366x768,目标像素坐标为100,200 那么dx和dy分别为100*65535/1366、 200*65535/768。
(关于参数dx和dy有一点很奇怪,经过测试dx和dy的值对鼠标按下和鼠标松开并没有作用,也就是说设置了dx和dy后鼠标都是在当前位置按下或松开)。
模拟鼠标点击
模拟鼠标点击需要先让鼠标移动到指定位置,可以使用MOUSEEVENTF_MOVE。然后点击,使用MOUSEEVENTF_LEFTDOWN和MOUSEEVENTF_LEFTUP。关键代码如下:
代码很简单一看就能懂,例子中被注释的代码SetCursorPos(x,y)也能实现移动鼠标的功能。最后写个例子看看效果:
(一个简单的鼠标连点器)
猜你喜欢
- 2024-09-29 Qt的6个简单小案例(qt官方例子)
- 2024-09-29 Qt入门阶段之事件(qt入门阶段之事件是什么)
- 2024-09-29 Qt编写安防视频监控系统9-自动隐藏光标
- 2024-09-29 Qt为什么站稳c++GUI的top1(qt quuid)
- 2024-09-29 Qt5 事件(event)机制详解(qt事件是通过什么实现的)
- 2024-09-29 Qt 保持GUI响应的几种方法(qt保存快捷键)
- 2024-09-29 Qt事件的接受与忽略(qt菜单栏按钮点击事件)
- 2024-09-29 「VTK」「DICOM」修改后的VTK sample code
- 2024-09-29 Qt事件(qt事件与信号槽)
- 2024-09-29 Qt事件总结(不良事件分析总结报告)
你 发表评论:
欢迎- 最近发表
-
- 给3D Slicer添加Python第三方插件库
- Python自动化——pytest常用插件详解
- Pycharm下安装MicroPython Tools插件(ESP32开发板)
- IntelliJ IDEA 2025.1.3 发布(idea 2020)
- IDEA+Continue插件+DeepSeek:开发者效率飙升的「三体组合」!
- Cursor:提升Python开发效率的必备IDE及插件安装指南
- 日本旅行时想借厕所、买香烟怎么办?便利商店里能解决大问题!
- 11天!日本史上最长黄金周来了!旅游万金句总结!
- 北川景子&DAIGO缘定1.11 召开记者会宣布结婚
- PIKO‘PPAP’ 洗脑歌登上美国告示牌
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)