UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案

转载 2016年03月30日 14:11:56

问题原因分析:

 
因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被连接的Windows接收到这些包之后,‘还原’命令并且在当前的活动会话上面执行。而当你断开连接时(点X关闭),会话变成断开状态,Windows会自动关闭会话(这里这样说是不准确的,事实上会话还是在的,只是状态变成断开的),也就导致了所有基于GUI的操作‘失效’了。

当最小化远程桌面时,Windows为了节约网络带宽传输,会暂时‘关闭会话’,导致你的模拟操作程序失效。

最初级的两个解决方案:
1. 到远程电脑上,登录,然后关显示器,走人,记住不要远程登录它;
2. 远程连接,永远不要关,也不能最小化。
 
当然我也有更好的解决方案,我的解决方案可以实现远程桌面的窗口最小化或是关闭而不影响模拟键盘鼠标的脚本。
 
1.窗口最小化失效的解决方案
修改注册表项(注:从机器A通过远程桌面连接机器B,则需要在机器A上修改注册表)
32位机器:
HKEY_CURRENT_USER/Software/Microsoft/Terminal Server Client/ RemoteDesktop_SuppressWhenMinimized或
HKEY_LOCAL_MACHINE/Software/Microsoft/Terminal Server Client/ RemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2  
32-bit:
CODE: SELECT ALL
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Terminal Server Client]
"RemoteDesktop_SuppressWhenMinimized"=dword:2


64位机器路径不同
HKEY_CURRENT_USER/Software/Wow6432Node/Microsoft/Terminal Server Client/ RemoteDesktop_SuppressWhenMinimized或HKEY_LOCAL_MACHINE/Software/Wow6432Node/Microsoft/Terminal Server Client/ RemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2
 

64-bit:
CODE: SELECT ALL
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Terminal Server Client]
"RemoteDesktop_SuppressWhenMinimized"=dword:2
2.关机失效的解决方案:
远程桌面mstsc远程登录虚拟机时,在虚拟机中新建文本文档,写入内容
 
@%windir%\System32\tscon.exe 0 /dest:console
@%windir%\System32\tscon.exe 1 /dest:console
@%windir%\System32\tscon.exe 2 /dest:console
 
将文本文档重新命名为‘Close_RDP’,并将后缀名改为‘.bat’,双击文件‘EnableCloseRDP.bat’关闭虚拟机,在虚拟机关闭后带有SendKey的脚本可以正常运行。不过此方法存在不太稳定的情况,不推荐使用。

3开源远程桌面连接软件法

使用C#开源远程桌面连接软件Multi RDP Client .NET,当远程连接上后,最小化的情况下,鼠标键盘模拟仍然是生效的。另外由于是开源软件,所以我们可以在源码基础上,扩展自己的功能,比如说在自动化测试过程中,接收请求,自动远程连接相应机器,来满足自动化测试的需求。另外,使用第三方远程连接软件,我们可以将软件的数据保存到远程的数据库中,这样,我们只需要有软件,不需要知道机器密码就可以使用执行机器了。

四、总结

以上几种解决远程桌面问题的方法,在工作中都有可能用到,比如说在脚本初期,我们使用到的机器不是太多的情况下,脚本的运行需要手工进行,这时,我们可以采用注册表法,这样就可以将远程桌面的窗口最小化到任务栏了;而当我们机器不断增多时,比如说自动化执行的机器超过了10个甚至更多,这时我们最好借助开源远程连接软件了。对于大规模的虚机管理,我们推荐使用开源远程连接软件来进行管理。

 
 
参考资料:
http://support.smartbear.com/viewarticle/30747/
http://www.networkautomation.com/urc/knowledgebase/running-interactive-tasks-in-minimized-remote-desktop-windows/4ecdf43e03470/
http://www.ranorex.com/forum/running-automation-via-remote-desktop-t1295.html

转载请注明出处:http://blog.csdn.net/sogouauto/article/details/43269045

远程登陆最小化或关闭 模拟键盘操作失效

问题原因分析:   因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被...
  • mezheng
  • mezheng
  • 2017年02月06日 10:06
  • 1265

RemoteDesktop_SuppressWhenMinimized

Hi, I am trying to figure out a way to run a couple autoit scripts on a remote WinXP SP3 machine ...
  • skywalker_hdu
  • skywalker_hdu
  • 2014年01月04日 00:40
  • 797

UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案

问题原因分析:   因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被连接...
  • sogouauto
  • sogouauto
  • 2015年01月29日 11:39
  • 2039

远程执行QTP测试任务

【背景】 在我们部署qtp测试用例批量运行时,一般不会部署在自己的工作机上,而是部署在一台测试机上,这就涉及到远程部署测试机的问题。普通情况下我们操作远程机器是通过windows的远程桌面,但是在远程...
  • sogouauto
  • sogouauto
  • 2015年01月28日 10:12
  • 777

使用 ElementTree,以 Python 语言处理 XML

最近一直在用python处理xml文件,查阅了不少资料,看到一篇挺有用的文章,所以转过来与大家分享。   ElementTree,一个用于 Python 的本机 XML 库。在 Pytho...
  • skywalker_hdu
  • skywalker_hdu
  • 2012年09月27日 22:37
  • 1117

远程桌面鼠标键盘映射问题

如果在远程桌面使用时需要最小化远程桌面时仍需要使用到鼠标键盘时,可在开启远程桌面的服务机做如下操作:  运行regedit 找到注册表项HKEY_CURRENT_USER\...
  • yitonglizihao
  • yitonglizihao
  • 2016年06月12日 11:25
  • 1095

使用远程桌面鼠标移动缓慢问题的解决方法

使用远程桌面鼠标移动缓慢问题的解决方法 收藏 我的办公电脑上新建了一个账户,管理员权限,一直没用过远程桌面。今天在别人机器连接到我的电脑,突然发现鼠标移动很慢很慢,Google了一下,只有一个帖子说的...
  • wildin
  • wildin
  • 2010年11月26日 21:12
  • 3018

远程桌面按键失效变成快捷键

一直在使用远程桌面连接Windows 2008操作系统,发现一个很烦的问题,经常发现某些时间,输入的按键变成了快捷键。 如弹出“辅助功能选项”、某些程序被快捷启动、按e出现资源管理器等。 ...
  • qq_25600055
  • qq_25600055
  • 2017年01月09日 15:15
  • 756

远程桌面连接服务器时,键盘不能正常打字

远程桌面连接服务器时,键盘不能正常打字。此时把windows自带的小键盘打开后,此时再用键盘就能正常输入。   打开小键盘的方法: 1、运行行输入:osk 2、 开始-附件-轻松访问-屏幕键...
  • ty564457881
  • ty564457881
  • 2012年02月23日 12:05
  • 22560

远程搞定键盘失灵

 操作系统:windows Server 2003 服务器没装防毒软件,在一次安装某控件的过程中中招了,控件是从别的机器拷过来的,被感染了威金病毒.运行控件安装程序后,机器速度开始变慢.马上调出任务栏...
  • sezvboyrul
  • sezvboyrul
  • 2007年01月06日 23:07
  • 2258
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
举报原因:
原因补充:

(最多只允许输入30个字)