自动化工具 windows 客户端锁屏 GUI 自动化问题

nonevx · August 15, 2019 · Last by 苏打 replied at August 16, 2019 · 338 hits

在Windows电脑锁屏的情况下, 想让PC客户端GUI自动化程序正常执行, 可能吗

共收到 5 条回复 时间 点赞

看你用啥工具了,据说我知,QTP在锁屏的情况下旧无法使用模拟键盘和鼠标了,因为system lock的同时,这两项都被禁用了。

nonevx #2 · August 15, 2019 作者
杨腾 回复

是AutoIT, 模拟发送Windows消息, 但是也不可以, 不知道是方法问题还是就不能实现

nonevx 回复

这个就不太懂了。。其实,为啥锁屏咧,把屏幕关掉不要触发system lock的操作应该就好了。

模拟输入键值或移动鼠标这些是不行的

首先锁屏之后是无法进行自动化屏幕操作的,包括远程桌面最小化之后也是不行的。但是可以通过另一种方法来绕过这个限制来实现。

首先如果你那边机器很多,可以让出一台专门做RDP Connect的机器用来连接所有需要进行自动化测试的机器,在运行自动化之前通过Jenkins之类的打开一个RDP连接到目标机器。

如果你那边只有一台机器的话,也可以通过RDP Loop实现,一台机器创建两个账号,用其中的一个账号RDP登陆到同台机器的另一个账号,这样可以实现RDP持久化,说白了就是一台机器创建两个账号自己RDP到自己,当然需要通过一些设置(multiple rdp)来实现。

下面是我们这边实现这个功能的Guide供你参考。

  1. In Same VM, two different account, create Jenkins slave

  2. Enable multiple RDP follow guide
    https://www.serverwatch.com/server-tutorials/how-to-enable-concurrent-remote-desktop-sessions-in-windows.html

  3. In slave 1 account 1
    Configure job run following bat:

START taskkill /im mstsc.exe /f /t
del c:\mstsc.txt
Start /b "" "C:\RDP\rdp.exe" /v:%machine_name% /domain:%domain% /u:%user_name% /p:%password% /fullscreen /w:1920 /h:1200
ping 1.1.1.1 -n 1 -w %delay%
tasklist | find "mstsc.exe" >> c:\mstsc.txt
if exist c:\mstsc.txt exit 0 else exit 1

我们这边所有的桌面程序自动化(.net程序, 桌面程序 包含web之类混合应用等的通吃)都通过以上方法实现了,实测公司内网基本上不会断,跑几十个小时都没问题。

需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up