どのようにして、プログラムのFinderを再起動しますか?
-
13-09-2019 - |
質問
私は、Finderのアイコンを
OPTION + RIGHT CLICK
場合は、、私は、コンテキストメニューの「のリニューアルの」オプションを取得します。私は、プログラム可能で、すべての場合は、Finderを再起動したいと思います。私はちょうどそれを殺し、それが再起動してみましょうするよりも、それを行うには良い方法があると確信しています。私はすでにこれを行うに適切な承認/権限を持っていると仮定します。
また、私は同様にスポットライトを再開したいと思います。
解決
そして、それをactivateイベントを送信する、AppleScriptを使用してイベントを終了し、それを送ります
//tell Finder to quit
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"];
[restartFinder executeAndReturnError:nil];
EDIT:Finderはactivateイベントを受信する準備ができていることを確認するために遅延を追加します。私のマシンでは、時にはそれが時にはそれがない、この遅延を必要とします:
//delay 1 second
restartFinder = [[NSAppleScript alloc] initWithSource:@"delay 1"];
[restartFinder executeAndReturnError:nil];
(...エンドEDIT)
//tell Finder to activate
restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to activate"];
[restartFinder executeAndReturnError:nil];
他のヒント
ファインダーはシステムによって生かされているので、あなたはそれを殺すことができるし、それが自動的に再起動します。私はこれを達成するためにkillall Finder
を使用します。
「リニューアルは」ほぼ確実ちょうどファインダーにkillシグナルを送信します。
killall Finder
でファインダーを強制終了すると、システムが自動的に再起動しますので、動作します。
[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall"
arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];
所属していません StackOverflow