Ответ 1
Моя проблема решена. Я использовал NSAppleScript
для выполнения apple script. Теперь я использую NSTask
, и моя перезагрузка системы /shutdow/Logout работают нормально
Я использую CFPlugin
для контекстного меню и наложения значков на 10.5 (так же, как scplugin
). Для связи между моим приложением и поиском я использую distributed object
. После установки моего плагина внутри папки Contextual menu items
моя система отказывается перезапускать /shutdow/Logout. В мониторе активности я не могу выйти из поисковика, только силовое quit-woking для finder.
На консоли я получаю 10.5.8
ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1805620379
Без связи между Finder и моим приложением, перезапуск системы /shutdow/Logout работают нормально.
На 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
Кто-нибудь может помочь мне?
ИЗМЕНИТЬ
Моя проблема решена. Я использовал NSAppleScript
для выполнения apple script. Теперь я использую NSTask, и моя перезагрузка системы /shutdow/Logout работают нормально. может ли кто-нибудь объяснить мне причину этого?
Моя проблема решена. Я использовал NSAppleScript
для выполнения apple script. Теперь я использую NSTask
, и моя перезагрузка системы /shutdow/Logout работают нормально
NSAppleScript можно запускать только из основного потока, поэтому основной поток будет заблокирован во время его запуска.
Не слишком уверен, что является основной причиной сообщения, но я полагаю, что script не может быть найден или запущен должным образом, а затем основной поток заблокирован или тайм-аут, и вся ваша последовательность выключения застревает.
На противоположной стороне NSTask правильно многопоточен, поэтому последовательность не будет заблокирована, и ваш компьютер будет правильно выключен.
Вот несколько релевантных ссылок, собранных вокруг: