Comment peut-on relancer le Finder programme?
-
13-09-2019 - |
Question
Si je OPTION + RIGHT CLICK
sur l'icône du Finder, je reçois une option " Relancer " dans le menu contextuel. Je voudrais relancer programme Finder, si possible. Je suis sûr qu'il ya une meilleure façon de le faire que de simplement le tuer et laissez-le redémarrer. Supposons que je l'autorisation appropriée / autorisations pour le faire déjà.
De plus, je voudrais redémarrer Spotlight ainsi.
La solution
Envoyer un événement quit en utilisant AppleScript, puis l'envoyer un événement activate:
//tell Finder to quit
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"];
[restartFinder executeAndReturnError:nil];
EDIT: ajouter un délai pour vous assurer que le Finder est prêt à recevoir un événement activate. Sur ma machine, parfois, il a besoin de ce retard, parfois, il ne fait pas:
//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];
Autres conseils
Finder est maintenu en vie par le système, de sorte que vous pouvez simplement le tuer et il relancera automatiquement. J'utilise killall Finder
pour y parvenir.
'Relance' presque certainement envoie juste un signal kill au Finder.
Tuer Finder avec killall Finder
fonctionne depuis le système relancera automatiquement.
[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall"
arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];