2012-02-07 16 views
14

Estoy usando CFPlugin para menú contextual y superposición de iconos en 10.5 (igual que scplugin). Para la comunicación entre mi aplicación y el buscador, estoy usando distributed object. Después de instalar mi complemento dentro de la carpeta Contextual menu items, mi sistema se niega a reiniciar/apagar/Cerrar sesión. En el monitor de actividad no puedo salir del buscador, solo aparece forzar para el buscador. en la consola que estoy recibiendo en 10.5.8mi sistema se niega a apagar/reiniciar con clase NSAppleScript

ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1805620379 

Sin comunicación entre Finder y mi aplicación, reinicio del sistema/shutdow/Salir están trabajando bien.
En 10.5.4

loginwindow[41]: ERROR | WSActivateApp | SetFrontProcess({0, 7980956}) returned error -600. Unable to activate process. 

loginwindow[41]: ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1780878507 

Puede alguien por favor me ayude?

EDITAR

Mi problema está resuelto. Estaba usando NSAppleScript para ejecutar Apple Script. Ahora estoy usando NSTask y mi sistema restart/shutdow/Logout funciona bien. ¿alguien puede explicarme por qué?

+0

Me doy cuenta de que cuando te llaman desde una aplicación que no sea Finder, devuelves "noErr". ¿Qué devuelves cuando te llaman desde Finder? – user1118321

+0

Si la aplicación es finder, estoy ejecutando mi código. –

+0

Y entonces, ¿qué devuelve? – user1118321

Respuesta

0

Mi problema está resuelto. Estaba usando NSAppleScript para ejecutar Apple Script. Ahora estoy usando NSTask y mi sistema restart/shutdow/Logout funciona bien

1

NSAppleScript solo se puede ejecutar desde el hilo principal, por lo que el hilo principal se bloqueará mientras se está ejecutando.

No estoy seguro de cuál es la causa raíz del mensaje, pero supongo que no se puede encontrar o ejecutar correctamente, y luego el hilo principal se bloquea o se agota el tiempo y toda la secuencia de apagado se bloquea.

En el lado opuesto, NSTask está correctamente multiproceso, por lo que la secuencia no se bloqueará y la computadora se apagará correctamente.

Éstos son algunos enlaces relevantes se reunieron en torno a:

+0

Estaba ejecutando el script de Apple desde el hilo secundario. y solo un hilo a la vez. –

+0

De (NSAppleScript no está en el hilo principal) [http://www.cocoabuilder.com/archive/cocoa/163902-nombre-de-entrada-no-en-el-main-thread.html # 164093] 'Todas las instancias de NSAppleScript parecen usar el mismo ComponentInstance y también el ComponentInstance puede ser usado por el hilo principal, para configurar la aplicación para que sea AppleScriptable tal vez. Cada hilo debe tener su propia AppleScript ComponentInstance, en teoría esto podría tener múltiples hilos cada uno ejecutando allí AppleScript ' Supongo que el buscador no está utilizando la clase NSApplescript. –

Cuestiones relacionadas