2009-09-22 9 views
5

Wenn ich OPTION + RIGHT CLICK auf dem Finder-Symbol, bekomme ich eine "Relaunch" Option im Kontextmenü. Ich möchte Finder programmatisch neu starten, wenn irgend möglich. Ich bin mir sicher, dass es einen besseren Weg gibt, es zu tun, als es einfach zu töten und es neu starten zu lassen. Angenommen, ich verfüge bereits über die entsprechenden Berechtigungen/Berechtigungen.Wie startet man Finder programmgesteuert neu?

Außerdem möchte ich Spotlight auch neu starten.

Antwort

5

senden sie ein Ereignis beenden Apple verwenden, ist es dann ein Activate-Ereignis senden:

//tell Finder to quit 
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"]; 
[restartFinder executeAndReturnError:nil]; 

EDIT: fügen Sie eine Verzögerung sicher Finder zu machen bereit ist, ein Activate-Ereignis zu erhalten. Auf meinem Rechner, manchmal braucht es diese Verzögerung, tut es manchmal nicht:

//delay 1 second 
restartFinder = [[NSAppleScript alloc] initWithSource:@"delay 1"]; 
[restartFinder executeAndReturnError:nil]; 

(... end EDIT)

//tell Finder to activate 
restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to activate"]; 
[restartFinder executeAndReturnError:nil]; 
+0

machst du nicht das gleiche zweimal ??? –

+0

Sie haben ein Speicherleck. Außerdem müssen Sie den Finder nicht aktivieren. Es wird automatisch neu gestartet. –

+0

matt ... das erste Skript ist 'quit', das zweite ist 'aktivieren'. Der Beispielcode ist sicher undicht. Der Finder wird nicht reaktiviert, ohne dass ihm zumindest Snow Leopard mitgeteilt wird. Nicht positiv über das vorherige Betriebssystem, aber ich bin mir ziemlich sicher, dass ein "wirklich" Finder beendet bleibt. – Rob

-1

"Relaunch" sendet fast sicher nur ein Kill-Signal an den Finder.

3

Finder wird vom System am Leben erhalten, so dass Sie es einfach töten können und es wird automatisch neu gestartet. Ich benutze killall Finder, um dies zu erreichen.

+1

Yeah, Explorer unter Windows ist ähnlich, aber das zufällige Töten von Explorer kann zu schlimmen Dingen führen; viel besser, um es sauber zu schließen. –

-1

Töten Finder mit killall Finder funktioniert, da das System automatisch neu starten wird.