1

そのため、作業中にランダムに開いて中断する非常に迷惑なプログラムを終了するための基本的なアップルスクリプトを作成しています。プログラムはとどまる必要がありますが、見たくありません。コンピューターの再起動時にスクリプトが自動的に開くようにします (設定でこれを行いました)。テストして機能することを確認したいのですが、アプリケーションとして保存すると、手動で強制終了しないとログアウト、シャットダウン、または再起動できません。これは繰り返しループが原因だと思いますが、これを修正する方法がわかりません。考えられることはすべて試しました。どんな助けでも大歓迎です。ありがとうございました

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
4

2 に答える 2

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

「on idle」ハンドラに注意してください。これは、アプリケーションが開いている間に繰り返し実行されるハンドラーです。そのハンドラの最後に「return 10」を配置したことに注意してください。これにより、アイドル ハンドラーが実行される頻度が決まります (この場合は 10 秒ごと)。それをあなたが望むものに変えることができます。

この方法の利点は、この開いたままのアプリケーションを終了できることです。やめられない繰り返しループに陥ることはありません。

あなたは、実行中のこのアプリケーションを表示したくないと述べています。これを実現するには、アプリケーション バンドル内の info.plist ファイルを変更する必要があります (アプリケーションを右クリックして、パッケージの内容を表示します)。「LSUIElement」キーを plist に追加し、値を true にする必要があります。そうすると、アプリケーションの実行中に Dock にアプリケーションが表示されなくなります。

実行中のアプリケーションが表示されないため、何らかの方法でアプリケーションを終了する必要があります。別のAppleScriptを使用してそれを行うことができます...

tell application "My Stay Open Application" to quit.

または、アクティビティ モニターを開いて、そこから終了することもできます。幸運を。

于 2013-02-18T21:04:13.030 に答える
1

別のアプローチを次に示します。

on idle
if application "LiveUpdate" is running then tell application "LiveUpdate" to quit
return 10
end idle
于 2013-02-19T04:13:23.093 に答える