远程桌面关闭时模拟键盘鼠标失灵的解决方案

最近在用JNA做通达信的盘后数据下载和数据高级导出自动化脚本,遇到一个远程桌面关闭后模拟鼠标键盘失效的问题,现在终于找到了原因了。

原因分析

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

这就是为什么我们写的程序模拟键盘鼠标点击,在我们关闭远程桌面时老是失效的原因。最近在用JNA做通达信的盘后数据下载和数据高级导出自动化脚本,这个问题困扰了小编很久,最终通过一个CMD脚本命令成功解决,这个命令的意思就是模拟其他用户远程连接windows,当前用户被迫中断连接,所以实际上一直有用户在连接windows一直有session存在并且状态为正在连接。

解决方案的脚本命令

@%windir%\System32\tscon.exe 0 /dest:console
@%windir%\System32\tscon.exe 1 /dest:console
@%windir%\System32\tscon.exe 2 /dest:console

把上面的这个脚本命令保存为.bat批处理文件,放到桌面上,每次想断开远程连接的时候,点击运行即可。

脚本下载

分享到:

评论已关闭