windows automation rdp autoit

windows - Mantener la sesión de escritorio remota "viva"



automation rdp (4)

Estoy usando AutoIt para automatizar las operaciones de GUI (conectarme a la máquina que está ejecutando la aplicación que se automatizará, usando RDP). Cada vez que minimizo la ventana RDP (usando mRemote) no se realizan más comandos AutoIt.

Tal vez la sesión de RDP esté marcada como "inactiva" cuando minimizo la ventana (no sé si eso es cierto, ni cómo configurar este comportamiento, si es así). Estoy pensando en 2 opciones para superar esto:

  1. Ejecutar mi proceso como un usuario elevado (o un servicio).
  2. Encontrar esta configuración que controla si la sesión está marcada como inactiva y anularla.

¿Cómo mantener "viva" la sesión del escritorio remoto cuando la ventana RDP se minimiza?


Tuvimos el mismo problema con RDP. Una solución alternativa que utilizamos fue abrir otra sesión de escritorio remoto para conectarse al mismo servidor:

  1. Se conecta para sever con RD.
  2. Desde RD del paso 1, se conecta al server una vez más.

De esta manera, la segunda sesión seguirá siendo "activa" cuando minimice o incluso desconecte su primera sesión de RD. Por supuesto, su servidor de Escritorio remoto debe admitir conexiones múltiples del mismo usuario.


Mi suite de regresión nocturna solía fallar en mi máquina local porque las reglas de la empresa bloquearon la máquina automáticamente después de 14 minutos de inactividad. Así que escribí un pequeño programa vbScript para presionar la tecla "PrintScreen" cada 12 minutos y realmente resolvió el problema. Aunque esto no estaba en RDP, pero la ejecución de algo similar en una máquina remota ayudaría.


Es posible que desee adjuntar su sesión actual de RDP a la CONSOLA. En tal caso, incluso después de la desconexión, la IU seguirá activa.

TSCON {sessionid | sessionname} /DEST:CONSOLE


La respuesta aceptada no funciona si no hay ninguna sesión de rdp, y aún desea automatizarla a través de AutoIt.

Dicen que en este caso no debería usar WinActivate y usar ControlSend en scripts AutoIt, y funcionaría sin problemas. Y sí, eso funciona, lo comprobé yo mismo.