3

我有一个启动应用程序的测试,并通过调用 GetForegroundWindow() 验证它是否已启动。测试在我们通常通过远程桌面访问的远程机器上运行。当我们对机器打开一个 rdp 会话时,测试完成并且一切正常。但是,一旦我们关闭远程桌面,测试就会失败,因为 GetForegroundWindow 总是返回 Null。我已经检查过断开连接后的活动桌面仍然是“默认”,所以我确定我没有遇到这个问题。有什么想法可能导致这种情况吗?

提前致谢

4

2 回答 2

0

我假设有 GetForegroundWindow 返回,您有一些方法可以验证返回的 HWND 来自感兴趣的应用程序而不是其他窗口。

无论如何,使用 EnumWindows 来获取屏幕上的所有窗口。找到与您正在寻找的应用相匹配的 HWND。

如果您无法验证 HWND,请在启动应用程序之前调用 EnumWindows 以获取屏幕上的窗口总数。然后通过您的自动化脚本启动您的应用程序。通过 EnumWindows 轮询窗口计数,直到计数增加一。

于 2009-09-20T03:28:14.650 回答
0

如果您的远程桌面是虚拟机,您可以使用 tscon 命令:

tscon 1 /dest:console其中“1”是活动会话的 ID。

此命令断开 RDP,但将会话发送到控制台。您可以捕捉窗口,截屏等...

于 2015-03-25T13:22:50.223 回答