windows - 使用 "SupressWhenMinimzed"安全关闭 RDP session 后,远程计算机的屏幕分辨率发生变化

标签 windows automation screen-resolution rdp ranorex

首先对这个标题(可能不是那么具体)感到抱歉,因为它包含多个主题。

我遇到的 atm 问题与我的测试自动化设置有关。它由一台处理 BE + FE 并启动测试本身的 Linux 机器组成。我通过 RDP session 连接到 Windows Server 2008(终端),它是运行实际测试的地方。出于自动化目的,我使用 Ranorex。

首先我如何设置Win机器: 由于 Ranorex 是一个 GUI 测试自动化工具,它需要让组件对 AUT(被测应用程序)可见,因此您需要关闭 RPD 客户端而不关闭 session 本身,否则测试将开始失败。

为此,我使用以下代码创建了一个bat文件:

%windir%\System32\tscon.exe RDP-Tcp#0 /dest:console

并在 HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client 下添加了一个注册表项 DWORD 值

RemoteDesktop_SuppressWhenMinimized

值为 2。

这样做的作用是在使用管理员权限运行 bat 文件后,它将关闭 RDP session ,但仍保持与 Win Server 计算机的终端连接打开,从而允许运行测试。

现在的问题是,安全关闭 session 后,为左侧打开的 session 设置的分辨率为 1024x768,而当 RDP 连接打开时,分辨率为 1920x1200。

最后,我自己无法回答这个问题:是否可以以某种方式指定保持打开状态的 session 的分辨率?

最佳答案

我找到的唯一解决方案是在计算机上安装一些 VNC 软件,连接到它,更改分辨率(在我的情况下也更改为 1920x1200),因为您无法从 RDP 执行此操作,而且我没有访问真机。

我还下载了 QRes.exe 工具并将其添加到路径中。

最后创建这个脚本:

for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
  %windir%\System32\tscon.exe %%s /dest:console
  timeout 5
  qres /X 1920 /Y 1080 /C 32
)

为其创建快捷方式(设置为以管理员身份运行),从现在开始,您可以通过 RDP (mstsc) 连接,但在离开时只需单击上述脚本的图标,而不是仅关闭 RDP。

P.S.:Qres 设置为 1920x1080,因为它不支持 1920x1200,但在我的情况下(Windows 10),测试仍然以 VNC -> 1920x1200 设置的分辨率运行,所以没问题。

关于windows - 使用 "SupressWhenMinimzed"安全关闭 RDP session 后,远程计算机的屏幕分辨率发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35862217/

相关文章:

新应用程序对象的 Excel VBA 自动化错误

c++ - 自动执行多次运行 C++ 程序的脚本

javascript - javascript 中的 screen.width 和 screen.availwidth 区别

css - 右侧边栏与浏览器调整大小的内容页面重叠

c# - 将值从 ASP.NET 页面发布到 C#

c++ - GetVolumePathName() 失败,错误 158 : ERROR_NOT_LOCKED

windows - 使用 Windows 批处理命令配置 Jenkins CI 作业和 FreeFileSync 批处理

c - x86 - 获取方向标志 (DF) 的当前状态

windows - 钩子(Hook)进程

从脚本生成构建时,SwiftSupport 文件夹未包含在 IPA 中