2015-08-28 76 views
0

我有一個腳本會產生一個彈出窗口,要求用戶點擊[Ok]。我有另一個腳本可以通過使用SendKeys自動執行此操作,但是當用戶註銷時需要運行腳本時該如何完成?該腳本似乎依賴於處於活動狀態的桌面環境。確認桌面環境以外的彈出框?

+0

SendKeys依賴於桌面環境,就像您說的模仿鍵盤輸入一樣。但是,用戶也可以點擊「確定」。如果沒有人登錄,用戶如何點擊確定?如果沒有更多信息,並且假設您希望腳本在沒有用戶登錄時運行,似乎您需要重新考慮腳本,以避免這些腳本(用戶單擊ok和sendkeys)。 – SumNone

回答

0

查看一個工具,如nircmd,可以直接發送BM_CLICK消息到按鈕,而不是依靠UI /按鍵。

假設你的消息框,採用了標準的OK按鈕,你必須在同一文件夾nircmd.exe作爲腳本(或者在系統路徑),下面的語句應該單擊它:

With CreateObject("WScript.Shell") 
    .Run "nircmd.exe dlg """" ""The Popup Title"" click ok" 
End With 

如果稱號消息框不是唯一的,還要傳遞進程名稱:

With CreateObject("WScript.Shell") 
    .Run "nircmd.exe dlg ""someprocess.exe"" ""The Popup Title"" click ok" 
End With