远程最小化机器 VBS 中的 Sendkeys

Sendkeys in remote minimized machine VBS

我在 SAP 应用程序的对象中执行 Shift + Enter 时遇到问题。

这是我的代码:

If Dialog("SAP Logon 730").WinListView("SysListView32").Exist(100) Then
    Dialog("SAP Logon 730").Activate
    Dialog("SAP Logon 730").WinListView("SysListView32").Select sServer
    Dialog("SAP Logon 730").Activate    
    SendKeysShell ("+{ENTER}") 
End if

服务器列表显示在 "Dialog" 对象中。必须选择一个(使用 .Select),然后使用 Shift + Enter 打开。

问题是如果我最小化远程机器,Sendkeys 不会正确执行。

如果您最小化远程桌面 window(显示远程计算机桌面的 window),Windows 会将远程会话切换到无 GUI 模式并且不会显示 windows 和控件。这意味着您无法在会话最小化时与桌面交互,因此您的 UFT/QTP 脚本(无论如何对我来说都是这样)将失败。

作为一种可能的解决方法,您可以尝试以下步骤:

  1. 在您的本地计算机上,关闭所有打开的远程桌面会话。
  2. 启动注册表编辑器 (regedit.exe)。
  3. 导航到以下注册表项之一,具体取决于您是希望仅为当前用户还是计算机上的所有用户修改远程桌面设置:

    HKEY_CURRENT_USER\Software\Microsoft\Terminal 服务器客户端

    HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal服务器客户端

  4. 创建一个名为 RemoteDesktop_SuppressWhenMinimized 的 DWORD 值并将其设置为 2。

  5. 关闭注册表编辑器。

现在,当您最小化本地桌面上的远程会话时,远程计算机上的 GUI 可用性应该不受影响,您的测试用例应该继续 运行 OK。

希望对您有所帮助...