在写代码的过程中需要解释以下几点:
1) 定位窗体
不能直接使用 WINDOWS 的 API ,比如 FindWindow 这个函数它只是在一个瞬间完成对窗体的操作,而商业的测试工具却能对一个窗体进行一段时间的查找,所以可以做如下的封装:
对于查找二级窗体的方法也同上进行封装。另一个很值得关注的问题如果界面上有两个一模一样的窗体怎么办?还是没有 CAPTION 的,比如登陆界面的用户名和密码的输入框,应该如何区别?在 WINDOWS 系统中,每一个窗体在构造的时候对它所包含的所有窗体是有顺序的,这个顺序叫 INDEX ,窗体自身的 INDEX 永远为0,最先构造的窗体对象为 1 ,依次排序。
2)操作
在得到一个窗体的句柄之后,就可对其进行相关的操作,具体是通过句柄得到此窗体坐标,再移动鼠标到这个位置,发生一个鼠标事件、键盘事件或者其它的操作。以鼠标单击为例:
需要注意的是在这个函数开头用了一个 SetFocus 激活目标窗体,再进行事件操作,防止出现目标窗体被其它窗体挡住的现象。