UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
来源:互联网 发布:康迪k10和知豆哪个好 编辑:程序博客网 时间:2024/06/07 01:34
问题原因分析:
因为通过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
0 0
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- 远程桌面连接-最小化后ui自动化失效
- 远程桌面复制文件失效的解决方案
- 远程桌面鼠标键盘映射问题
- 关于mac和PC连接多个显示器共享鼠标键盘,粘贴板的解决方案。
- 关于mac和PC连接多个显示器共享鼠标键盘,粘贴板的解决方案。
- 远程桌面连接终极解决方案
- 远程桌面连接常见问题解决方案
- element-ui中dialog弹窗关闭按钮失效
- VM虚拟机中鼠标左键点击失效解决方案
- DLL中键盘钩子失效的问题解决
- Redhat下鼠标失效解决方案
- 解决远程桌面关闭后teamviewer不能连接的问题
- 远程桌面环境Xfce4中Tab键失效的解决方法
- Android自动化测试“Adb connection Error:远程主机强迫关闭了一个现有的连接”错误解决方案
- win10不能被远程连接解决方案(开启远程桌面,关闭防火墙仍不能被远程)
- 使用Visual Studio 2015开发Android 程序
- Runloop (一)
- php导出数据到excel,防止身份证等数字字符格式变成科学计数的方法
- linux基本知识2
- 大数阶乘
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- 关于maven项目的build path编译错误
- cannot find protocol definition for 'TencentSessionDelegate'
- hdu 1166 敌兵布阵(线段树单点更新求和)
- 关于python3.x读取写入文件时编码报错问题
- Markdown 语法
- redux笔记
- hdu2544 最短路--单源最短路径
- python学习5:requests