转自互联网
在自动化测试的开发中,有一些控件的ID是很难找到的,所以有些时候,我们直接设置鼠标的位置,然后是用click事件,会收到很好的效果。在Windows API中有个mouse_event函数为我们准备好了这一切。
如何用程序模拟鼠标点击移动等各种操作呢?
下面我提供了一个例子。
操作的时候注意不要让鼠标飞了。
以下参数里,都可以模拟。
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; 标示是否采用绝对坐标
7
|
|
|
|
正需要!不知道和我想象中的是不是一个东西,先谢过了!
|
|
|
|
|
刚刚找到了另一个,应该也是一样的操作方法,很实用,赞一个!
|
|
|
|
|
8001=采用绝对坐标移动,不干什么,8002=用绝对坐标移动到地方并按下!
|
|
|
|
|
这个函数 mouse_event 同 key_event 一样是不牢靠的. 会被弹窗截走.
我们有个懂行的客户(全美最大的隐形眼镜制造商之一)不接受这种方法.
这个函数的背后其实是找到 Active window, 然后发消息给它. 问题是 Active window 会被弹窗取代.
正确的做法是用 FindWindow 找到指定窗口, 然后发消息给这个指定窗口. 这样就可以模拟鼠标或是键盘事件给指定窗口, 即使该窗口不是 Active window, 抑或被其它窗口遮蔽. 也不限于 LabVIEW 的窗口.
这在其它编程语言(如C/C++...)中用的比较广泛.
mouse_event 和 key_event 用法简单, 适合初学者.
|
|
|
|
|