2013-02-18 122 views
1

因此,我正在寫一個基本的applescript結束一個非常煩人的程序,隨機打開並打斷我,而我的工作。該計劃需要留下,但我不想看到它。我想讓我的腳本在計算機重新啓動時自動打開(我在設置中執行了此操作)。我想測試,以確保它的工作原理,但作爲一個應用程序保存後,我不能註銷或關閉或重新啓動,無需手動強制退出。我認爲這是因爲重複循環,但我不知道如何解決這個問題。我試過了我能想到的一切。任何幫助將不勝感激。謝謝無限循環在applescript停止註銷

on appIsRunning(appName) 
    tell application "System Events" to (name of processes) contains appName 
end appIsRunning 

repeat 

if appIsRunning("LiveUpdate") then 
    tell application "LiveUpdate" 
     quit 
    end tell 



end repeat 
+1

如果有LiveUpdate的一個的plist在'{〜,} /庫/啓動{守護程序,代理}',嘗試將其刪除。 – user495470 2013-02-18 19:23:13

回答

2

我不確定你有沒有適當的方法。然而,如果你想做你正在嘗試做的事情,那麼你想創建一個保持打開的應用程序。通過將applescript保存爲應用程序並檢查「運行處理程序後保持打開狀態」複選框,可以實現這一點。以下是你如何編寫代碼...

on idle 
    if appIsRunning("LiveUpdate") then tell application "LiveUpdate" to quit 
    return 10 
end idle 

on appIsRunning(appName) 
    tell application "System Events" to (name of processes) contains appName 
end appIsRunning 

注意「閒置」處理程序。這是應用程序保持打開狀態時重複運行的處理程序。請注意,我已經在該處理程序的末尾放置了「return 10」。這決定了空閒處理程序運行的頻率,在這種情況下每10秒鐘一次。你可以改變你想要的。

此方法的優點是您可以退出此保持打開的應用程序。您不會陷入無法退出的重複循環。

您提到您不想在運行時看到此應用程序。要做到這一點,你將不得不修改應用程序包內的info.plist文件(右鍵單擊應用程序並顯示包內容)。您必須將「LSUIElement」鍵添加到plist並賦予其值true。然後在運行時您不會在Dock中看到應用程序。

因爲你看不到它正在運行,你將需要一些方法來退出應用程序。你可以使用另一個applescript ...

tell application "My Stay Open Application" to quit. 

或者你可以打開活動監視器並從那裏退出它。祝你好運。

1

這裏是另一種方法:

on idle 
if application "LiveUpdate" is running then tell application "LiveUpdate" to quit 
return 10 
end idle