通过api来实现等待某个窗体消失的功能
上一篇 /
下一篇 2007-06-29 17:48:23
/ 个人分类:WinRunner技术
在winrunner中,经常会碰到需要等待某个窗体消失的情况,winrunner提供了一个win_wait_info()函数来实现这个功能,但是这个函数在实际运用中,效率并不是很好。特别是如果等待的窗体的出现时间很短,以致于在还没运行win_wait_info()函数还没运行的时候这个窗体已经消失的时候,winrunner就会等待设定的时间并且报错。 这在实际运用中带来了很大的问题。因为win_wait_info()这个函数并不能很好的判断这个窗体如果不存在的情况。
既然winrunner支持windows api,那么可不可以通过api调用的方式来实现这个函数的功能呢?答案是肯定的,而且在实际的运用过程中,效果比win_wait_info()要好很多。下面是具体的代码供参考:
load_dll("user32.dll");
extern long IsWindowVisible(long);
extern long FindWindowA(string,string);
function ni_win_wait_disapear(winClass,winName)
{
auto handle;
handle = FindWindowA(winClass,winName);
if(handle == 0) return 0;
else
{
while(IsWindowVisible(handle))
wait(1);
}
}
其中winClass表示窗口的类名,winName表示窗口的名字;同时可以通过修改FindWindowA的声明,来定义只需要其中某个参数就可以实现。具体的大家可以看看windows api的参数说明
收藏
举报
TAG:
WinRunner技术