HYDD 发表于 2007-1-15 11:19:30

有没有什么函数可以返回当前窗口的

遇到一个问题:
做回归测试,通过判断一个窗口是否出现来判断bug是否仍然存在。
折腾了半天,老出问题

HYDD 发表于 2007-1-15 11:34:51

如何可以返回当前窗口阿?大家帮帮忙。
在线等啊

lsy325 发表于 2007-1-15 11:54:21

GUI_get_window ( );

返回在guimap里的当前窗口。

例如:
public function change_window(in win)
{
    auto curr_win;
    curr_win = GUI_get_window();
    if (curr_win != win)
      set_window(win);
}
#取回GUI map中的当前窗口,如果需要,则改变当前窗口。

lsy325 发表于 2007-1-15 11:58:27

像你说的问题可用
   win_wait_info("窗口","enabled",1,10);
来实现的.
在规定的时间内窗口出现,该函数会成功,未出现函数失败.通过判定该函数是否执行成功就行了.

lsy325 发表于 2007-1-15 12:03:51

还有两个函数:
GetForegroundWindow();
返回当前窗口句柄。

GetFocus();
返回当前获取焦点的窗口句柄,若没有,则返回NULL。

HYDD 发表于 2007-1-15 13:30:58

呵呵,谢谢阿。

HYDD 发表于 2007-1-15 13:32:24

还有一个问题:返回GUI中的当前窗口是什么意思?还返回当前窗口一样吗?

HYDD 发表于 2007-1-15 13:42:46

还有一个问题,是不是执行成功就是==E_ok?

lsy325 发表于 2007-1-15 14:52:26

返回GUI中的当前窗口和返回当前窗口有区别,主要是用来判定WinRunner有没有把想要操作的窗口做为当前窗口.脚本中用_set_window("",0);指定的.
想要得到当前窗口还是用"GetForegroundWindow();返回当前窗口句柄"好些.

lsy325 发表于 2007-1-15 14:55:46

执行成功:E_OK(代码) 0(数值)代表 成功的操作
执行失败:E_NOT_IN_MAPPING(代码)   -10011(数值)代表在GUI map中找不到窗体或对象

HYDD 发表于 2007-1-15 15:27:03

呵呵,多谢lsy325。
俺还有一个问题:
返回当前窗口的句柄后,怎么使用这个句柄呢?
句柄是不是属性handle

HYDD 发表于 2007-1-15 15:41:05

GetForegroundWindow();
这个函数怎么用?举个例子吧。返回的句柄怎么付给其他变量

lsy325 发表于 2007-1-15 15:49:25

不好意思,这个是WinRunner调用API函数,我是看些资料自己学学,这方面的没用过,下面这个API函数你可能用得上.
怎样使用你自己试试吧.

BringWindowToTop(hWnd);
该函数将指定的窗口设置到Z序的顶部。   如果窗口为顶层窗口,则该窗口被激活;
如果窗口为子窗口,则相应的顶级父窗口被激活。
hWnd   设置到Z序的顶部的窗口句柄。

如果函数成功,返回值为非零;如果函数失败,返回值为零。
备注:使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。
调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,
但是BringWindowToTop函数并不能使一个窗口成为顶层窗口。
页: [1]
查看完整版本: 有没有什么函数可以返回当前窗口的