OSX:任务控制激活时监控事件



我正在尝试通过附加全局事件侦听器来侦听鼠标事件和键盘事件,如这个伟大的线程中所述。

但是,当调用任务控制中心时,它似乎阻止了我的听众。我非常感谢有关如何解决此问题的任何建议。

我能够通过使用事件点击来解决这个问题,这些点击可在碳石英事件服务库中找到。

Objective-C 示例代码(我无法让它在 Swift 中工作):

假设您已经定义了一个 C 函数

CGEventRef yourCallbackFunction(CGEventTapProxy proxy, CGEventType type, CGEventRef event, void *userinfo);

然后,您可以使用此代码侦听事件SomeEventHere

CFMachPortRef ref = CGEventTapCreate(kCGHIDEventTap, 
                                     kCGHeadInsertEventTap,
                                     kCGEventTapOptionListenOnly, 
                                     CGEventMaskBit(kCGEventSomeEventHere),
                                     (CGEventTapCallBack)yourCallbackFunction,
                                     userinfo);
CFRunLoopSourceRef src = CFMachPortCreateRunLoopSource(kCFAllocatorDefault, ref, 0);
CFRunLoopAddSource(CFRunLoopGetMain(), src, kCFRunLoopDefaultMode);

最新更新