我在10.5上使用CFPlugin
作为上下文菜单和图标覆盖(与scplugin
相同)。对于我的应用程序和finder之间的通信,我使用distributed object
。在Contextual menu items
文件夹中安装我的插件后,我的系统拒绝重新启动/关闭/注销。在活动监视器中我无法退出finder,只有强制退出才能为finder叫好。在控制台上,我正在使用10.5.8
ERROR | -[ApplicationManager(AppleEventHandling) _tryQuitAllForRequestor:replyEvent:] | _tryQuitAllForRequestor - _vproc_set_global_on_demand returned error -1805620379
在Finder和我的应用程序之间没有通信的情况下,系统重新启动/关闭/注销都可以正常工作
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
执行苹果脚本。现在我正在使用NSTask,并且我的系统重新启动/关闭/注销工作正常。谁能给我解释一下原因吗?
NSAppleScript只能从主线程运行,因此主线程在运行时会被阻塞。
不太确定消息的根本原因是什么,但我认为脚本找不到或无法正常运行,然后主线程被阻塞或超时,所有的关闭序列都会被卡住。
相反,NSTask是正确的多线程,因此序列不会被阻止,并且您的计算机将正确关闭。
以下是一些相关链接:
- http://deusty.blogspot.com/2006/11/nsapplescript-is-slow.html
- NSTask启动导致崩溃
- http://www.cocoabuilder.com/archive/cocoa/226818-nsapplescript-returns-wrong-result-on-multiple-safari-windows-applescript-editor-work.html
- https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAppleScript_Class/Reference/Reference.html
我的问题解决了。我使用NSAppleScript
执行苹果脚本。现在我正在使用NSTask
,我的系统重新启动/关闭/注销工作正常。