Windows Mobile自动化测试之模拟用户操作

本文介绍了在Windows Mobile上进行自动化测试时如何模拟用户操作,包括键盘输入、文本输入和鼠标输入。通过调用系统API函数,如模拟键盘的Virtual Code,发送WM_CHAR消息进行文本输入,以及使用mouse_event进行鼠标操作。在Windows Mobile中,由于某些API的限制,需要特定的解决方法,如利用Microsoft.WindowsCE.Win32API.dll库获取窗口句柄。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近又开始弄一些自动化测试的东西,所以在这总结一下。

其实以前也零零散散做过一些自动化的测试,但是基本上都是在一套现有的框架上面做一些相对来说比较简单的开发,但这一次没有框架,没有任何技术支持。还好,要做的东西不难,所以一个人应付下来了。

自动化测试核心部分之一就是要模拟用户的输入,主要有三个方面:

模拟键盘输入

键盘输入其实就是调用系统的API函数

VOID keybd_event( 
  BYTE bVk, 
  BYTE bScan, 
  DWORD dwFlags, 
  DWORD dwExtraInfo
);

有了这个函数,只要我们知道你想模拟的键的Virtual Code,你就可以模拟敲键了,具体的Virtual Code可以查阅MSDN手册。这其中有一点点小问题,那就是对PC来说,Virtual Code很容易一一确定,但是在Windows Mobile来说,就不那么显而易见了,比如说那两个软件分别是VK_F1VK_F2,而那个Center键则是VK_RETURN。当时我就是琢磨了不少时间才确定这些虚拟码,最简洁的办法就是自己写一个程序捕捉一下这些键到底是啥,不要瞎猜,嘿嘿~

 

模拟文本输入

上面说的模拟键盘输入确实可以模拟输入一些ASCI码值,比如你要输入英文,那绝对没有问题,只需一个一个的发送Virtual Code就行了,但是如果要输入Unicode比如中文什么的,那就不行了,因为keybd_event中的bVk参数本身就是BYTE类型的,应该不可能传送Unicode,所以只能用另外一个办法,就是向你想输入的窗口发送WM_CHAR消息,所以问题就是我们如何得到目标窗口的句柄。由于所测App与我们的自动化测试程序不在同一个线程,所以我们没法直接找到那些窗口,这里我采用了另外一种方法,因为通常情况下目标窗口都是当前的Focused的窗口,所以只要我们能用GetFocus这个API那就可以得到句柄了,但是不同线程之间是没有共享Input Status的,所以我们首先要通过AttachThreadInput这个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值