我遇到了一个棘手的问题,张贴一个事件从事件点击。我正在点击NSSystemDefined在kCGHIDEventTap,然后用一个新的事件取代。我遇到的问题是,根据我发布事件的方式,它只会被一些应用程序看到。我的测试应用程序是Opera、Firefox、Quick银和Xcode。下面是我在事件点击回调中尝试过的不同技术,并给出了结果。我期待一个动作(“正确的反应”)从每个应用程序;“系统哔”意味着什么是绑定到那个关键的系统声音。
(6)是最好的,但用户抱怨额外的系统嗡嗡声的正确的反应,我猜这是来自事件的双重张贴。我不确定是否还有其他组合可以尝试,也不确定还能在哪里寻找。有人能提供任何指导吗?有没有办法既可以从我的回调中返回事件,又可以在不同时做这两种操作的情况下将其发布到带注释的点击中?
很抱歉提出这个冗长的问题,我做了很多实验。
提前感谢
Update:这是我用来创建事件点击的代码:
CFMachPortRef eventTap;
eventTap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, 0,CGEventMaskBit(NX_SYSDEFINED) | (1 << kCGEventKeyDown) | (1 << kCGEventKeyUp), myCGEventCallback, (void *)hidEventQueue);发布于 2010-04-12 22:06:50
我想我修好了。我一直在使用+[NSEvent keyEventWithType:location:modifierFlags:timestamp:windowNumber:context:characters:charactersIgnoringModifiers:isARepeat:keyCode:]创建一个NSEvent,然后返回该事件的-CGEvent。我切换到CGEventCreateKeyboardEvent,使用使用CGEventCreateSourceFromEvent从原始事件创建的事件源,并从回调返回事件。我所有的测试现在都通过了。
https://stackoverflow.com/questions/553284
复制相似问题