Pregunta

Si OPTION + RIGHT CLICK en el icono del Finder, me sale una opción " Relanzamiento " en el menú contextual. Me gustaría relanzar programación Finder, si es posible. Estoy seguro de que hay una mejor manera de hacerlo que acaba de acabar con él y dejar que se reinicie. Suponga que tengo el correcto autorización / permiso para hacerlo ya.

Además, me gustaría reiniciar Spotlight también.

¿Fue útil?

Solución

Enviar un evento dejó de usar AppleScript, a continuación, enviar un evento de activación:

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

EDIT: añadir un retardo para asegurarse Buscador está preparado para recibir un evento de activación. En mi máquina, a veces se necesita este retraso, a veces no es así:

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

(... fin EDIT)

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

Otros consejos

Buscador se mantiene viva por el sistema, por lo que sólo puede acabar con él y va a relanzar automáticamente. Yo uso killall Finder para lograr esto.

'relanzamiento' casi seguro que simplemente envía una señal kill para el Finder.

Matar Finder con killall Finder funciona ya que el sistema relanzar automáticamente.

[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall" 
    arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top