当应用程序被沙箱化时,CGEvent无法正常工作。

4
这是一篇关于如何通过代码按键的好文章。这里有一个链接:Cocoa中模拟CMD+Option+D
这个方法非常有效,但是当你把应用程序沙盒化时,它就无法工作了。请问有谁知道我应该在授权文件中请求哪个例外来使其正常工作?

我不相信苹果公司会有意让这个功能起作用,因为这是一种违反安全规定的行为。 - Dov
1个回答

1
很抱歉地报告:目前没有一种(或至少没有一种不是临时权限的)方法来做到这一点。我专门向苹果询问了此事,他们表示,这种能力“破坏了”应用程序沙盒的目的。如果您想在没有任何临时权限的情况下实现这一点,唯一的办法就是让用户编写像这样的AppleScript文件:
tell application "System Events"
    keystroke "e" using {command down, option down, control down, shift down}
end tell

然后让他将该脚本放入特定文件夹,以便您可以使用NSUserAppleScriptTask API运行它(该API仅适用于10.8)。当然,在某些情况下,这很麻烦,只是一个选项...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接