UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
2015-01-29 11:39
1631 查看
问题原因分析:
因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被连接的Windows接收到这些包之后,‘还原’命令并且在当前的活动会话上面执行。而当你断开连接时(点X关闭),会话变成断开状态,Windows会自动关闭会话(这里这样说是不准确的,事实上会话还是在的,只是状态变成断开的),也就导致了所有基于GUI的操作‘失效’了。
当最小化远程桌面时,Windows为了节约网络带宽传输,会暂时‘关闭会话’,导致你的模拟操作程序失效。
最初级的两个解决方案:
1. 到远程电脑上,登录,然后关显示器,走人,记住不要远程登录它;
2. 远程连接,永远不要关,也不能最小化。
当然我也有更好的解决方案,我的解决方案可以实现远程桌面的窗口最小化或是关闭而不影响模拟键盘鼠标的脚本。
1.窗口最小化失效的解决方案:
修改注册表项(注:从机器A通过远程桌面连接机器B,则需要在机器A上修改注册表)
32位机器:
HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或
HKEY_LOCAL_MACHINESoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2
64位机器路径不同:
HKEY_CURRENT_USERSoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_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的脚本可以正常运行。
参考资料: 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
因为通过mstsc启动远程桌面连接时,被连接的Windows会启动一个会话(Session)。此时你对远程桌面窗口里面的所有操作(鼠标,键盘)将会‘翻译’成TCP包传输过去,被连接的Windows接收到这些包之后,‘还原’命令并且在当前的活动会话上面执行。而当你断开连接时(点X关闭),会话变成断开状态,Windows会自动关闭会话(这里这样说是不准确的,事实上会话还是在的,只是状态变成断开的),也就导致了所有基于GUI的操作‘失效’了。
当最小化远程桌面时,Windows为了节约网络带宽传输,会暂时‘关闭会话’,导致你的模拟操作程序失效。
最初级的两个解决方案:
1. 到远程电脑上,登录,然后关显示器,走人,记住不要远程登录它;
2. 远程连接,永远不要关,也不能最小化。
当然我也有更好的解决方案,我的解决方案可以实现远程桌面的窗口最小化或是关闭而不影响模拟键盘鼠标的脚本。
1.窗口最小化失效的解决方案:
修改注册表项(注:从机器A通过远程桌面连接机器B,则需要在机器A上修改注册表)
32位机器:
HKEY_CURRENT_USERSoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或
HKEY_LOCAL_MACHINESoftwareMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized设置数据类型DWord,值为2
64位机器路径不同:
HKEY_CURRENT_USERSoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_SuppressWhenMinimized或HKEY_LOCAL_MACHINESoftwareWow6432NodeMicrosoftTerminal Server ClientRemoteDesktop_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的脚本可以正常运行。
参考资料: 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
相关文章推荐
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- UI自动化中关闭远程桌面连接,鼠标键盘失效的解决方案
- 远程桌面连接-最小化后ui自动化失效
- 远程连接(win7 + win2003) ,多桌面, 一个键盘一个鼠标控制两台电脑
- win10不能被远程连接解决方案(开启远程桌面,关闭防火墙仍不能被远程)
- win2003开启远程桌面连接连后电脑电脑键盘失效该怎么办?
- xp系统关闭远程桌面时,弹出一个窗口,提示"正在重新连接"
- Android自动化测试“Adb connection Error:远程主机强迫关闭了一个现有的连接”错误解决方案
- 远程桌面鼠标键盘映射问题
- 关于mac和PC连接多个显示器共享鼠标键盘,粘贴板的解决方案。
- 远程桌面连接后Desktop没有托盘图标的解决方案
- post请求远程url 报错“基础连接已经关闭...Authentication.AuthenticationException...远程证书无效”解决方案
- Windows系统给树莓派装系统之Raspbian系统(无外接设备,如屏幕、鼠标、键盘)并使用ssh、vnc和xrdp(远程桌面)以及固件更新
- Windows7以上版本_远程桌面连接失败解决方案
- Nodejs爬虫刷csdn访客+桌面自动化框架Robotjs模拟鼠标,键盘,屏幕事件!
- [.Net疑难杂症]远程主机关闭了连接错误,Flush()或End()方法导致的错误解决方案
- QQ 自动接收远程连接之关闭了远程桌面
- 远程桌面连接终极解决方案
- 远程桌面的连接闪断解决方案