質問

私は、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];
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top