2011-04-03 255 views
10

我使用AutoIt自動執行GUI操作(使用RDP連接到運行待自動化應用程序的計算機)。每當我最小化RDP窗口(使用mRemote)時,不再執行AutoIt命令。保持遠程桌面會話「活着」

當我最小化窗口(我不知道這是否屬實,也不知道如何配置此行爲,如果是),RDP會話標記爲「不活動」。我正在考慮2個選項來解決這個問題:

  1. 將我的進程作爲一些提升的用戶(或服務)運行。
  2. 查找此配置,該配置控制會話是否被標記爲非活動並覆蓋它。

如何在RDP窗口最小化時保持遠程桌面會話「活動」?

回答

5

我們與RDP有同樣的問題。我們使用的解決方法是打開另一個遠程桌面會話以連接到同一服務器:

  1. 您使用RD連接到sever
  2. 從步驟1的RD開始,您再次連接到server

這樣,當您最小化或甚至斷開第一個RD會話時,第二個會話仍然是「活動的」。當然,您的遠程桌面服務器必須支持來自同一用戶的多個連接。

+1

@liortal是的,這是真的。我想這與Windows的繪製方式有關:如果Windows目前不可見,它將不會收到「WM_PAINT」消息。當最小化遠程桌面窗口時,它不再可見,因此不會被繪製;此外,它不會收到鼠標事件:畢竟遠程桌面與您的客戶端桌面共享鼠標。 – 2011-04-03 12:39:27

0

我的夜間迴歸套件用於在本地機器上失敗,因爲企業規則在閒置14分鐘後自動鎖定機器。所以我寫了一個小的vbScript程序,每12分鐘按一下「PrintScreen」鍵,它真的解決了這個問題。雖然這不在RDP上,但在遠程機器上執行類似的操作會有所幫助。

2

您可能希望將當前的RDP會話附加到CONSOLE。在這種情況下,即使斷開連接,用戶界面仍然處於活動狀態。

TSCON {sessionid | sessionname} /DEST:CONSOLE 
0

如果根本沒有rdp會話,並且您仍希望通過AutoIt實現自動化,則接受的答案不起作用。

They say在這種情況下,您不應該使用WinActivate,而是在AutoIt腳本中使用ControlSend,而且它可以順利運行。是的,這是有效的,自己檢查。