0
我有一個腳本會產生一個彈出窗口,要求用戶點擊[Ok]
。我有另一個腳本可以通過使用SendKeys
自動執行此操作,但是當用戶註銷時需要運行腳本時該如何完成?該腳本似乎依賴於處於活動狀態的桌面環境。確認桌面環境以外的彈出框?
我有一個腳本會產生一個彈出窗口,要求用戶點擊[Ok]
。我有另一個腳本可以通過使用SendKeys
自動執行此操作,但是當用戶註銷時需要運行腳本時該如何完成?該腳本似乎依賴於處於活動狀態的桌面環境。確認桌面環境以外的彈出框?
查看一個工具,如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
SendKeys依賴於桌面環境,就像您說的模仿鍵盤輸入一樣。但是,用戶也可以點擊「確定」。如果沒有人登錄,用戶如何點擊確定?如果沒有更多信息,並且假設您希望腳本在沒有用戶登錄時運行,似乎您需要重新考慮腳本,以避免這些腳本(用戶單擊ok和sendkeys)。 – SumNone