2011-04-03 44 views
10

Estoy usando AutoIt para automatizar las operaciones de la GUI (conectándose a la máquina que ejecuta la aplicación para ser automatizada, usando RDP). Cada vez que minimizo la ventana RDP (usando mRemote) no se realizan más comandos AutoIt.Mantener la sesión de escritorio remota "viva"

Quizás la sesión 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 solucionar esto:

  1. Ejecutando 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 la sesión del escritorio remoto "activa" cuando la ventana RDP se minimiza?

Respuesta

5

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 a sever con RD.
  2. Desde RD del paso 1, se conecta de nuevo a server.

De esta forma, 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.

+1

@liortal Sí, es verdad. Supongo que de alguna manera está relacionado con la forma en que se pintan las ventanas: si Windows no está visible actualmente, no recibirá los mensajes 'WM_PAINT'. Cuando minimiza la ventana de Escritorio remoto, ya no es visible y, por lo tanto, no está pintada; Además, no recibe eventos de mouse: después de todo, Remote Desktop comparte el mouse con su escritorio de cliente. –

0

Mi suite de regresión nocturna solía fallar en mi máquina local porque las reglas de la empresa bloqueaban 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.

2

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

TSCON {sessionid | sessionname} /DEST:CONSOLE 
0

La respuesta aceptada no funciona si no hay una sesión RDP en absoluto, y que todavía quiere automatizarlo través de AutoIt.

They say 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.

Cuestiones relacionadas