Windows开发:鼠标操作
本文为作者原创,转载请注明出处
一般情况下,Windows平台下可以使用mouse_event函数实现鼠标操作
我们这里使用更新后的SendInput函数
bool MouseEventpos(InputData data)
{INPUT MouseData = { 0 };MouseData.type = INPUT_MOUSE;MOUSEINPUT &MouseInput = MouseData.mi;MouseInput.time = NULL;MouseInput.dwExtraInfo = NULL;if (true)//绝对值或相对值{MouseInput.dwFlags |= MOUSEEVENTF_ABSOLUTE;MouseInput.dx = ((x * 1.0f) / (m_width * 1.0f)) * 65535;MouseInput.dy = ((y * 1.0f) / (m_height * 1.0f)) * 65535;}else{//TODO:相对值}//下面是根据函数传入参数进行判断if (data.input_data() == MOUSE_WHEEL){MouseInput.dwFlags |= MOUSEEVENTF_WHEEL;MouseInput.mouseData = data.value();}else{switch (data.inputstate()){case DEFAULT:{MouseInput.dwFlags |= MOUSEEVENTF_MOVE;break;}case STATE_DOWN:{if ((int)BUTTON_LEFT == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_LEFTDOWN;}else if ((int)BUTTON_MIDDLE == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_MIDDLEDOWN;}else if ((int)BUTTON_RIGHT == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_RIGHTDOWN;}break;}case STATE_UP:{if ((int)BUTTON_LEFT == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_LEFTUP;}else if ((int)BUTTON_MIDDLE == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_MIDDLEUP;}else if ((int)BUTTON_RIGHT == data.input_data()){MouseInput.dwFlags |= MOUSEEVENTF_RIGHTUP;}break;}default:break;}}//可以一次性发多个,SendInput第一个参数是发送的结构体个数,第二个是数组指针,详见MSDNSendInput(1, &MouseData, sizeof(MouseData));return true;
}
Windows开发:鼠标操作相关推荐
- 模拟键盘、鼠标操作或Windows hook 在部分软件失效的问题
用户界面权限隔离(UIPI) 在Windows中的权限系统 除了在进程之间提供内核对象的访问保护,窗口系统还利用完整性级别来拒绝低完整性级别的进程访问/更新高完整性级别的进程的用户界面.这个机制称为用 ...
- C/C++ Windows平台 模拟键盘 / 鼠标操作
原理:调用Windows API 头文件: Windows.h 鼠标 参考:MSDN :mouse_event function 按键 使用定义在Winuser.h中的mouse_event函数(Wi ...
- 深入理解Kinect for Windows开发
----微软Build2012大会:Kinect for Windows Programming Deep Dive 这个周末看了两天的微软Build 2012大会,真的是一次盛会,上面有很多的演讲主 ...
- Windows装逼操作
本文授权转载自公众号「良许Linux」.良许目前就职于一家世界500强外企,专注于Linux应用开发.他的公众号主要分享Linux方面干货,欢迎关注! 大家应该有在电视/电影里看到这样的一幕:一个戴着 ...
- 用Mouse_event()来模拟鼠标操作
在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API中有个mouse_event函数为我们准备好 ...
- mouse_event()函数控制鼠标操作
在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API中有个mouse_event函数为我们准备好 ...
- 用Mouse_event()来控制鼠标操作
用Mouse_event()来控制鼠标操作 在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API ...
- 银河麒麟操作系统安装Mono开发环境操作步骤
银河麒麟操作系统安装Mono开发环境操作步骤 需求:现有一C/S结构的Winform客户端程序需要运行到国产操作麒麟操作系统V10上,经查询资料,普遍采取mono开发工具来实现此转换. 目标:转换现有 ...
- selenium对浏览器操作、鼠标操作等总结
1 控制浏览器 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退.前进按钮等. 1.1 控制浏览器窗口大小 在不同的浏览器大小下 ...
最新文章
- 启动R环境并执行R脚本
- 一个object上拥有一个同步队列和一个等待队列
- [转]Windows Shell 编程 第十一章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987992】...
- C/C++调用Fortran的使用说明
- VTK:相互作用之Picking
- modbus poll\slave
- Vue + Spring Boot 项目实战(五):数据库的引入
- EL : Free Package of October
- 配置Apache服务器的虚拟主机
- 查看html元素绑定的事件与方法 visual Event 插件
- idea调试怎么跳出循环_Intellij IDEA调试功能使用总结
- 如何在 macOS Monterey 中管理应用程序和联系人的 Mac 通知?
- STM32 cubemx驱动ws2812b灯条
- 三菱fx3u编码器同步程序,伺服同步,一个编码器控制两个伺服同步运转
- 如何用 Python 自动发送微博?
- Axure怎么制作文字滚动的动态效果
- 20190722华为OPPO小米夜间省电模式调研
- 钉钉新上线的「文字表情」功能--原来消息还可以这么回!
- getPhoneNumber:fail no permission
- 【开关电源】电源仿真smplis
热门文章
- 怎样用postman做接口测试,一篇足矣
- 【微信小程序+echarts点亮中国地图】微信小程序echarts中国地图点亮功能
- linux的影子系统,利用Ubuntu卸掉影子系统2008试用版
- 《Python 黑帽子》学习笔记 - Python3 实现 netcat - Day 8
- eclipse配置python开发环境_如何在Eclipse中配置python开发环境
- linux--- 连接数据库
- 分页插件PageHelper失效
- Java 实现顺序表的基本操作
- 怎么删除电脑服务器远程桌面连接,删除远程桌面服务客户端访问许可证
- python批量下载网页图片,不用再复制粘贴了(7)