通过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技术

 

评分:0

我来说两句

我的栏目

日历

« 2024-05-14  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 1199
  • 日志数: 2
  • 建立时间: 2007-06-29
  • 更新时间: 2007-08-24

RSS订阅

Open Toolbar