从今日扩展应用程序发送系统事件

时间:2015-03-09 08:25:40

标签: objective-c macos cocoa sandbox keystrokes

我需要发送今日推广应用程序的击键,所以我这样写了。

    CGEventSourceRef source =     CGEventSourceCreate(kCGEventSourceStateHIDSystemState);

    CGEventRef f4 = CGEventCreateKeyboardEvent(source, kVK_F4, true);
    CGEventSetFlags(f4, kCGEventFlagMaskControl);
    CGEventTapLocation location = kCGHIDEventTap;

    CGEventPost(location, f4);

    CFRelease(f4);
    CFRelease(source);`


我写了#com; apple.systemevents'在.entitlements文件中。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"      "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>com.apple.security.temporary-exception.apple-events</key>
    <array>
        <string>com.apple.systemevents</string>
    </array>
    <key>com.apple.security.app-sandbox</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-only</key>
    <true/>
</dict>
</plist>

但是,它没有用 请告诉我怎么做。
感谢。

1 个答案:

答案 0 :(得分:1)

您在“苹果脚本事件

中提出的问题或对苹果事件的例外情况

你没有生成,但你想直接诱导按键/鼠标按下

这不起作用。没有沙盒的app / extension可以在系统范围内生成这类事件