本文为作者原创,转载请注明出处

一般情况下,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开发:鼠标操作相关推荐

  1. 模拟键盘、鼠标操作或Windows hook 在部分软件失效的问题

    用户界面权限隔离(UIPI) 在Windows中的权限系统 除了在进程之间提供内核对象的访问保护,窗口系统还利用完整性级别来拒绝低完整性级别的进程访问/更新高完整性级别的进程的用户界面.这个机制称为用 ...

  2. C/C++ Windows平台 模拟键盘 / 鼠标操作

    原理:调用Windows API 头文件: Windows.h 鼠标 参考:MSDN :mouse_event function 按键 使用定义在Winuser.h中的mouse_event函数(Wi ...

  3. 深入理解Kinect for Windows开发

    ----微软Build2012大会:Kinect for Windows Programming Deep Dive 这个周末看了两天的微软Build 2012大会,真的是一次盛会,上面有很多的演讲主 ...

  4. Windows装逼操作

    本文授权转载自公众号「良许Linux」.良许目前就职于一家世界500强外企,专注于Linux应用开发.他的公众号主要分享Linux方面干货,欢迎关注! 大家应该有在电视/电影里看到这样的一幕:一个戴着 ...

  5. 用Mouse_event()来模拟鼠标操作

    在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API中有个mouse_event函数为我们准备好 ...

  6. mouse_event()函数控制鼠标操作

    在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API中有个mouse_event函数为我们准备好 ...

  7. 用Mouse_event()来控制鼠标操作

    用Mouse_event()来控制鼠标操作 在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果.在Windows API ...

  8. 银河麒麟操作系统安装Mono开发环境操作步骤

    银河麒麟操作系统安装Mono开发环境操作步骤 需求:现有一C/S结构的Winform客户端程序需要运行到国产操作麒麟操作系统V10上,经查询资料,普遍采取mono开发工具来实现此转换. 目标:转换现有 ...

  9. selenium对浏览器操作、鼠标操作等总结

    1 控制浏览器 Selenium 主要提供的是操作页面上各种元素的方法,但它也提供了操作浏览器本身的方法,比如浏览器的大小以及浏览器后退.前进按钮等. 1.1 控制浏览器窗口大小 在不同的浏览器大小下 ...

最新文章

  1. 启动R环境并执行R脚本
  2. 一个object上拥有一个同步队列和一个等待队列
  3. [转]Windows Shell 编程 第十一章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987992】...
  4. C/C++调用Fortran的使用说明
  5. VTK:相互作用之Picking
  6. modbus poll\slave
  7. Vue + Spring Boot 项目实战(五):数据库的引入
  8. EL : Free Package of October
  9. 配置Apache服务器的虚拟主机
  10. 查看html元素绑定的事件与方法 visual Event 插件
  11. idea调试怎么跳出循环_Intellij IDEA调试功能使用总结
  12. 如何在 macOS Monterey 中管理应用程序和联系人的 Mac 通知?
  13. STM32 cubemx驱动ws2812b灯条
  14. 三菱fx3u编码器同步程序,伺服同步,一个编码器控制两个伺服同步运转
  15. 如何用 Python 自动发送微博?
  16. Axure怎么制作文字滚动的动态效果
  17. 20190722华为OPPO小米夜间省电模式调研
  18. 钉钉新上线的「文字表情」功能--原来消息还可以这么回!
  19. getPhoneNumber:fail no permission
  20. 【开关电源】电源仿真smplis

热门文章

  1. 怎样用postman做接口测试,一篇足矣
  2. 【微信小程序+echarts点亮中国地图】微信小程序echarts中国地图点亮功能
  3. linux的影子系统,利用Ubuntu卸掉影子系统2008试用版
  4. 《Python 黑帽子》学习笔记 - Python3 实现 netcat - Day 8
  5. eclipse配置python开发环境_如何在Eclipse中配置python开发环境
  6. linux--- 连接数据库
  7. 分页插件PageHelper失效
  8. Java 实现顺序表的基本操作
  9. 怎么删除电脑服务器远程桌面连接,删除远程桌面服务客户端访问许可证
  10. python批量下载网页图片,不用再复制粘贴了(7)