2017-09-26 19 views
-1

我想在終端中使用此命令: osascript -e'退出應用程序「ISISClientManager」' 它的工作原理,但應用程序有一個對話框與是或否。 我可以自動讓腳本選擇是。終端腳本退出應用程序,但忽略對話窗口中用戶輸入的需求

我相信這是一個基本問題。非常基本,我無法在Google中找到答案。 謝謝, 伊恩

+0

可能有強制退出應用程序的方法。 – marcusshep

+0

正確但是。我試圖避免kill命令,並且要禮貌地退出應用程序。 –

回答

0

第一反應:哇,營銷可能會被建議重新考慮這個名字。

第二個反應:您可能能夠使用輔助功能API來做到這一點:

如果「是」按鈕是默認選項:

osascript -e 'tell application "MyApp" to activate' -e 'tell application "System Events" to keystroke return' 

如果它不是默認情況下,它顯然會這是一段艱難的時間,但如果開啓全鍵盤訪問,您可以通過Tab鍵和空格按鍵的組合(兩者之間的小延遲讓UI追上)來完成。或者,您可以獲取窗口的位置,測量相對於其中一個角的「是」按鈕的位置,在那裏模擬點擊事件,並希望佈局在將來的某個版本中不會更改。

編輯:沒關係上述;其實你可以得到系統事件按名稱查找按鈕,點擊它你:

osascript -e 'tell application "System Events" to tell process "MyApp" to click button "Yes" of front window' 

或者,如果按鈕是板材:

osascript -e 'tell application "System Events" to tell process "MyApp" to click button "Yes" of sheet 1 of front window' 

您可能需要啓用要麼終端或任何應用程序你發送此從系統偏好設置 - >隱私 - >可訪問性爲此工作。

相關問題