Frage

Wenn ich auf dem Finder-Symbol OPTION + RIGHT CLICK, erhalte ich eine " Relaunch " Option im Kontextmenü. Ich möchte programmatisch Finder wieder aufzunehmen, wenn überhaupt möglich. Ich bin sicher, dass es ein besserer Weg, es zu tun, als es nur zu töten und lassen Sie es neu starten. Angenommen, ich habe die entsprechende Genehmigung / Berechtigungen so bereits zu tun.

Darüber hinaus möchte ich Spotlight neu zu starten, auch.

War es hilfreich?

Lösung

sendet es Ereignis mit Applescript beenden, dann ein Activate-Ereignis an:

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

EDIT: fügen Sie eine Verzögerung um sicherzustellen, dass Finder 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];

Andere Tipps

Finder wird durch das System am Leben gehalten, so dass Sie es einfach töten und es wird automatisch neu starten. Ich benutze killall Finder dies zu erreichen.

'Relaunch' an Sicherheit grenzender Wahrscheinlichkeit sendet nur ein Kill-Signal an den Finder.

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

[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall" 
    arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top