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

这个函数在user32.dll这个库文件里面。我们可以在C:/WINDOWS/system32(XP系统)这个目录下找到这个文件,他是系统自带的。 我们以C#直接调用这个文件中的API为例子来说下怎么进行鼠标操作,首先在我们C#中声明引用,如果是一个基于From的程序,这个声明的位置写在你的From class就可以了
[System.Runtime.InteropServices.DllImport("user32")]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

参数 意义
dwFlags Long,下表中标志之一或它们的组合
dx,dy Long,根据MOUSEEVENTF_ABSOLUTE标志,指定x,y方向的绝对位置或相对位置
cButtons Long,没有使用
dwExtraInfo Long,没有使用

dwFlags常数 意义

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函数就可以了
mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0);

1、这里是鼠标左键按下和松开两个事件的组合即一次单击:
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )

2、模拟鼠标右键单击事件:
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 )

3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )

4、使用绝对坐标
MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0

需要说明的是,如果没有使用MOUSEEVENTF_ABSOLUTE,函数默认的是相对于鼠标当前位置的点,如果dx,和dy,用0,0表示,这函数认为是当前鼠标所在的点。

5、直接设定绝对坐标并单击
mouse_event(MOUSEEVENTF_LEFTDOWN, X * 65536 / 1024, Y * 65536 / 768, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, X * 65536 / 1024, Y * 65536 / 768, 0, 0);
其中X,Y分别是你要点击的点的横坐标和纵坐标

mouse_event() 控制鼠标操作相关推荐

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

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

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

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

  3. java控制鼠标操作一些重复的事情

    文章目录 场景 Robot的简单了解 鼠标移动需要知道位置 企业微信添加好友 场景 女朋友最近被安排了一个企业微信添加客户的沙雕活,然后跟我吐槽说,每天都要加,都想离职了,为了不让女朋友那么难受,突然 ...

  4. OpenGL学习之路13----相机控制(鼠标操作)

    代码放在github上 本文根据教程:ogldev进行扩充学习,一步步从零开始,记录学习历程 到目前为止,我们已经可以将一个物体以任意大小.任意角度和任意位置摆放在世界空间,相关博文链接: OpenG ...

  5. python-opencv控制鼠标操作

    学习目标: OpenCV允许我们对窗口上的鼠标进行操作 掌握 python-OpenCV如何操作鼠标的 学习时间: `1分钟学废 学习产出: ·setMouseCallback(winname,cal ...

  6. Python脚本控制鼠标键盘完成机械化操作

    Python直接控制鼠标键盘 使用Python脚本直接控制键盘鼠标 安装 $ sudo pip install pyautogui 安装的依赖包可能比较多,只要耐心等待即可 控制鼠标操作 # -*- ...

  7. 【向重复工作说不】c#之模拟鼠标操作

    一.写在前面 作为一个人力资源工作者,会经常遇到填表.报表的事务,其实有时候就是重复再重复的点击鼠标工作,特别是遇到一些复杂的客户端程序.网页程序,诸如用友客户端.社保管理系统等等,就尤其让人头疼.正 ...

  8. 如何控制鼠标和键盘的操作

    3.8如何控制鼠标和键盘的操作 [问题提出] 要实现远程控制,对受控方鼠标和键盘的控制必不可少. [分析比较] 要实现对鼠标和键盘的控制,必须模拟鼠标和键盘的动作.要模拟鼠标和键盘的动作有两种方法: ...

  9. 手势控制鼠标的操作(不指屏幕实现简单触屏)

    这个是通过对手势的识别来控制鼠标的操作, 1.当伸出一根手指是,鼠标随着手的移动而移动 2.当伸出两根手指时,模拟鼠标单击左键 3.当伸出三根手指时,模拟鼠标右键单击 检测手指数其实很简单,对手所在的 ...

  10. Python自动化控制鼠标和键盘操作—— PyAutoGUI

    简 介:PyAutoGUI是一个Python语言的键鼠自动化库,简单来说和按键精灵的功能一样.但是因为是Python的类库,所以可以使用Python代码配合一些其他类库完成更加强大的功能,本文对PyA ...

最新文章

  1. 人工智能改善客户服务体验
  2. 3D姿态估计|时序卷积+半监督训练
  3. 致命错误: zlib.h:没有那个文件或目录
  4. Silence - 专注于阅读的博客园主题
  5. 云间来客 --- Java 目录大纲
  6. php 计算字符串相邻最大重复数_php如何解决字符串中重复字符的次数并且排序输出的方法...
  7. java多线程中的异常处理
  8. Contextualization
  9. adb push命令传文件到手机_手机之间传文件,蓝牙太慢,QQ要流量,推荐快牙
  10. matlab repmat()
  11. 利用IDisposable接口构建包含非托管资源对象
  12. 摸鱼也要讲究方法:工作学习中玩手机并不能缓解无聊和疲劳
  13. 微信公众号开发 ----微信网页开发config接口注入(3)
  14. 怎样让计算机快速开机,怎样快速设置电脑定时自动开机
  15. windows10 查看.theme文件
  16. python中script什么意思_如何用通俗易懂的语言解释脚本(script)是什么?
  17. java编程军规_java 编程军规
  18. 蓝牙HC05模块探究-设置AT指令
  19. SDSoC软硬件协同设计流程系列——1.基于SDSoC的软硬件协同设计流程简介
  20. 【两周快速入门pr】一、电子相册案例——快速带你走进剪辑的世界

热门文章

  1. 读书笔记之《薄世宁·医学通识50讲》
  2. 应用程序无法正常启动0xc0150002怎么解决
  3. vulhub漏洞复现十七_GhostScript
  4. 主板电源接口测试软件,雷电接口加入! Intel原厂血统Z77测试
  5. Objective-C 与 C++ 的区别
  6. 服务器间大文件传输软件,四种常用的大文件传输方法
  7. 【组合数学】组合恒等式总结 ( 十一个组合恒等式 | 组合恒等式证明方法 | 求和方法 ) ★
  8. MCTS人工智能围棋
  9. Iometer存储测试工具参数说明-5 存储规格选项
  10. 安卓手机有坏点测试软件,检测手机屏幕是否有坏点的方法分享 怎么检测手机屏幕坏点...