使用“SupressWhenMinimzed”安全关闭 RDP 会话后,远程计算机的屏幕分辨率发生变化

问题描述 投票:0回答:4

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

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

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

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

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

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

RemoteDesktop_SuppressWhenMinimized

值为 2。

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

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

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

windows automation screen-resolution rdp ranorex
4个回答
2
投票

我找到的唯一解决方案是在计算机上安装一些 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 设置的分辨率运行,所以没问题。


0
投票

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

我也注意到了同样的事情。据我所知,您要远程连接的计算机在物理(或虚拟)计算机上需要具有默认分辨率 = 1920x1200。

我已经使用 VNC 来解决此限制 - 但我能找到的唯一可以防止更改的信息是在所有计算机上具有相同的默认分辨率。

祝你好运!


0
投票

我不得不处理类似的问题。我通过在机器中安装 Dameware MiniRemote Control 代理解决了这个问题。一旦您通过 Dameware Mini Remote Control 应用程序连接到它,您就可以更改在 RDP 中无法更改的分辨率。 (RealVNC 或类似的可能会像其他人建议的那样工作,我没有尝试)

一些对我不起作用的解决方案

  1. QRes.exe /x:1920 /y:1200 http://qres.sourceforge.net/
  2. Windows Management Instrumentation(内置):wmic Desktopmonitor create screenheight=1920,screenwidth=1200
  3. 更改屏幕分辨率:http://tools.taubenkorb.at/change-screen-resolution/
  4. 持久窗口:http://www.ninjacrab.com/persistent-windows/

0
投票

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

如上所述在批处理文件中运行以下命令仍然会扰乱我的应用程序的格式,直到我删除“超时5”。似乎屏幕分辨率的更改发生在建立屏幕分辨率之前的 5 秒间隔内(导致应用程序定位)打乱。)在没有超时的情况下,分辨率会立即重新归因于 RDP 连接,并且应用程序定位不会打乱

© www.soinside.com 2019 - 2024. All rights reserved.