51Testing软件测试论坛

标题: 有没有什么函数可以返回当前窗口的 [打印本页]

作者: HYDD    时间: 2007-1-15 11:19
标题: 有没有什么函数可以返回当前窗口的
遇到一个问题:
做回归测试,通过判断一个窗口是否出现来判断bug是否仍然存在。
折腾了半天,老出问题
作者: HYDD    时间: 2007-1-15 11:34
如何可以返回当前窗口阿?大家帮帮忙。
在线等啊
作者: lsy325    时间: 2007-1-15 11:54
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
像你说的问题可用
     win_wait_info("窗口","enabled",1,10);
来实现的.
在规定的时间内窗口出现,该函数会成功,未出现函数失败.通过判定该函数是否执行成功就行了.
作者: lsy325    时间: 2007-1-15 12:03
还有两个函数:
GetForegroundWindow();
返回当前窗口句柄。

GetFocus();
返回当前获取焦点的窗口句柄,若没有,则返回NULL。
作者: HYDD    时间: 2007-1-15 13:30
呵呵,谢谢阿。
作者: HYDD    时间: 2007-1-15 13:32
还有一个问题:返回GUI中的当前窗口是什么意思?还返回当前窗口一样吗?
作者: HYDD    时间: 2007-1-15 13:42
还有一个问题,是不是执行成功就是==E_ok?
作者: lsy325    时间: 2007-1-15 14:52
返回GUI中的当前窗口和返回当前窗口有区别,主要是用来判定WinRunner有没有把想要操作的窗口做为当前窗口.脚本中用_set_window("",0);指定的.
想要得到当前窗口还是用"GetForegroundWindow();返回当前窗口句柄"好些.
作者: lsy325    时间: 2007-1-15 14:55
执行成功:E_OK(代码) 0(数值)代表 成功的操作
执行失败:E_NOT_IN_MAPPING(代码)   -10011(数值)  代表在GUI map中找不到窗体或对象
作者: HYDD    时间: 2007-1-15 15:27
呵呵,多谢lsy325。
俺还有一个问题:
返回当前窗口的句柄后,怎么使用这个句柄呢?
句柄是不是属性handle
作者: HYDD    时间: 2007-1-15 15:41
GetForegroundWindow();
这个函数怎么用?举个例子吧。返回的句柄怎么付给其他变量
作者: lsy325    时间: 2007-1-15 15:49
不好意思,这个是WinRunner调用API函数,我是看些资料自己学学,这方面的没用过,下面这个API函数你可能用得上.
怎样使用你自己试试吧.

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

如果函数成功,返回值为非零;如果函数失败,返回值为零。
备注:使用BringWindowToTop函数显示出被其他窗口部分或全部遮盖的窗口。
调用这个函数类似于调用SetWindowPos函数来改变窗口在Z序中的位置,
但是BringWindowToTop函数并不能使一个窗口成为顶层窗口。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2