使用“SupressWhenMinimzed”

时间:2016-03-08 08:15:29

标签: windows automation screen-resolution rdp ranorex

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

我遇到的问题与我的测试自动化设置有关。它由一台处理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下添加了一个reg条目DWORD值

RemoteDesktop_SuppressWhenMinimized

值为2.

这样做是在运行具有管理员权限的bat文件后,它将关闭RDP会话,但仍会保持终端连接对Win Server机器开放,允许运行测试。

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

所以最后我无法回答自己的问题:是否有可能指定保持开放的会话的分辨率?

3 个答案:

答案 0 :(得分:0)

  

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

我也注意到了同样的事情。从我能够弄清楚的,您正在远程处理的机器需要在物理(或虚拟)机器上具有默认分辨率= 1920x1200。

我已经使用VNC解决了这个限制 - 但我能找到的唯一一个防止改变的信息是在所有机器上使用相同的默认分辨率。

祝你好运!

答案 1 :(得分:0)

我找到的唯一解决方案是在机器上安装一些VNC软件,连接到它,更改分辨率(在我的情况下也改为1920x1200),因为你不能从RDP做到这一点我不会&# 39;可以访问真机。

我还下载了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所以没关系。

答案 2 :(得分: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创建screenheight = 1920,screenwidth = 1200
  3. ChangeScreenResolution:http://tools.taubenkorb.at/change-screen-resolution/
  4. 持久性窗口:http://www.ninjacrab.com/persistent-windows/