我有一个测试启动应用并验证它是通过调用GetForegroundWindow()启动的。测试在我们通常通过远程桌面访问的远程计算机上运行。当我们对机器打开一个rdp会话时,测试就完成了,一切都很顺利。但是,一旦我们关闭远程桌面,测试就会失败,因为GetForegroundWindow总是返回Null。我已经检查过断开连接后活动桌面仍然是“默认”,所以我确定我没有遇到this问题。可能导致这种情况的任何想法?
提前致谢
答案 0 :(得分:0)
我假设有GetForegroundWindow返回,你有办法验证返回的HWND是来自感兴趣的app而不是其他窗口。
在任何情况下,使用EnumWindows获取屏幕上的所有窗口。找到与您要查找的应用匹配的HWND。
如果您没有办法验证HWND,请在启动应用程序之前调用EnumWindows以获取屏幕上的窗口总数。然后通过自动化脚本启动您的应用程序。通过EnumWindows轮询窗口计数,直到计数增加1。
答案 1 :(得分:0)
如果远程桌面是虚拟机,则可以使用tscon命令:
tscon 1 /dest:console
其中" 1"是活动会话的ID。
此命令断开RDP,但将会话发送到控制台。你可以抓住窗户,截取屏幕等......