最近在云服务器上进行程序测试,其中涉及到一些自动化脚本的执行。如果远程桌面保持连接的话不会有任何问题,但是如果关闭远程桌面,就会引发异常:There is no active desktop required for moving mouse cursor!
问题原因是关闭远程桌面后,远程服务器的切换为登录界面,自动化脚本失去了输入焦点(可能是登出后系统切掉了键鼠相关钩子)。在网上搜了搜解决方案,Github上的一个帖子描述的就是这类问题:
https://github.com/pywinauto/pywinauto/issues/1096 ,相关参考还有:
国内CSDN关于这个问题的解决方案和Github上一样,地址: https://blog.csdn.net/xiaouncle/article/details/103035537
总结一下步骤,备忘:
1、query session 命令查看当前session id,rdp-tcp#0 #后面的数字就是
2、创建一个bat脚本,写入命令 : tscon rdp-tcp#0 /dest:console 命令中#后面的数字填写query session查询到的数字。
3、以管理员权限执行bat脚本,当前远程桌面会话会自动关闭,但不会造成UI自动化脚本执行时出现异常。
4、有一点麻烦,需要先query,写入bat再执行,不过可以先这样用着。有时间的时候看看能不能按这个思路写个py脚本简化一下。
文章评论