1. 程式人生 > >遠程登陸最小化或關閉 模擬鍵盤操作失效

遠程登陸最小化或關閉 模擬鍵盤操作失效

mst server 會話 帶寬 when 傳輸 需要 關機 當前

問題原因分析:

因為通過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的腳本可以正常運行。

遠程登陸最小化或關閉 模擬鍵盤操作失效