2011-04-03 28 views
10

Uso AutoIt per automatizzare le operazioni della GUI (connessione alla macchina che esegue l'app da automatizzare, utilizzando RDP). Ogni volta che minimizzo la finestra RDP (usando mRemote) non vengono eseguiti ulteriori comandi AutoIt.Mantenere "viva" la sessione del desktop remoto

Forse la sessione RDP è contrassegnata come "non attiva" quando minimizzo la finestra (non so se è vero, né come configurare questo comportamento, se è così). Sto pensando a 2 opzioni per superare questo:

  1. In esecuzione il mio processo come un utente elevato (o un servizio).
  2. Ricerca di questa configurazione che controlla se la sessione è contrassegnata come inattiva e sostituita.

Come mantenere "attiva" la sessione del desktop remoto quando la finestra RDP viene ridotta a icona?

risposta

5

Abbiamo avuto lo stesso problema con RDP. Una soluzione alternativa è stata aprire un'altra sessione desktop remota per connettersi allo stesso server:

  1. Connessione a sever con RD.
  2. Da RD del passaggio 1, ci si connette nuovamente a server.

In questo modo la seconda sessione sarà ancora "attiva" quando si riduce a icona o addirittura si disconnette la prima sessione RD. Ovviamente il tuo server Desktop remoto deve supportare più connessioni dallo stesso utente.

+1

@liortal Sì, è vero. Immagino che sia in qualche modo legato al modo in cui le finestre sono dipinte: se Windows non è attualmente visibile, non riceverà i messaggi 'WM_PAINT'. Quando si riduce a icona la finestra di Desktop remoto, non è più visibile e pertanto non viene dipinta; inoltre, non riceve gli eventi del mouse: dopo tutto il desktop remoto condivide il mouse con il desktop del client. –

0

La mia suite di regressione notturna non funzionava sul mio computer locale perché le regole aziendali bloccavano automaticamente la macchina dopo 14 minuti di inattività. Così ho scritto un piccolo programma vbScript per premere il tasto "PrintScreen" ogni 12 minuti e ho davvero risolto il problema. Anche se questo non era su RDP, ma l'esecuzione di qualcosa di simile sulla macchina remota sarebbe d'aiuto.

2

È possibile collegare la sessione RDP corrente alla CONSOLE. In tal caso, anche dopo la disconnessione, l'interfaccia utente sarà ancora attiva.

TSCON {sessionid | sessionname} /DEST:CONSOLE 
0

La risposta accettata non funziona se non c'è sessione RDP a tutti, e si vuole ancora automatizzare attraverso AutoIt.

They say in questo caso non utilizzare WinActivate e utilizzare ControlSend negli script AutoIt e funzionerebbe correttamente. E sì, funziona, l'ho controllato io stesso.

Problemi correlati