I'm using AutoIt to automate GUI operations (connecting to the machine that's running the to-be-automated app, using RDP). Whenever I minimize the RDP window (using mRemote) no further AutoIt commands are performed.
Maybe the RDP session is marked "inactive" when I minimize the window (I don't know if that's true, nor how to configure this behavior, if so). I'm thinking about 2 options to overcome this:
- Running my process as some elevated user (or a service).
- Finding this configuration which controls whether session is marked inactive and override it.
How to keep remote desktop session "alive" when the RDP window gets minimized?
We had the same problem with RDP. A workaround we used was to open another remote desktop session to connect to the same server:
- You connect to
sever
with RD. - From RD of step 1, you connect to
server
once again.
This way the 2nd session will be still "active" when you minimize or even disconnect your first RD session. Of course your Remote Desktop server has to support multiple connections from the same user.
You might want to attach your current RDP session to the CONSOLE. In such case even after disconnection the UI will be still active.
TSCON {sessionid | sessionname} /DEST:CONSOLE
My nightly regression suite used to fail on my local machine because enterprise rules locked the machine automatically after 14 mins of inactivity. So I wrote a small vbScript program to press "PrintScreen" key every 12 mins and it really solved the problem. Though this was not on RDP, but executing something similar on remote machine would help.
The accepted answer doesn't work if there is no rdp session at all, and you still want automate it through AutoIt.
They say in this case you should not use WinActivate and use ControlSend in AutoIt scripts instead, and it would work smoothly. And yes, that works, checked it myself.
来源:https://stackoverflow.com/questions/5528412/keeping-remote-desktop-session-alive