Lou*_*Lou 8 c macos cocoa objective-c hid
我试图以编程方式生成键盘keydown和keyup事件.我目前正在使用CGPostKeyboardEvent来执行此操作,但我正在寻找一种在较低级别执行此操作的方法.我看过DDHidLib,但无法找到创建假事件的方法.有人可以帮忙吗?
更新:感谢weichsel的建议,我现在正在创建一个关键事件,其中包括:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
Run Code Online (Sandbox Code Playgroud)
但是,我的问题仍然存在,所以我会详细说明一下.我希望发送按键的应用程序(第三方)实现DDHidLib的键捕获功能:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
Run Code Online (Sandbox Code Playgroud)
并且永远不会使用当前方法调用它.我的猜测是,使用CGEventCreateKeyboardEvent模拟的键值太高,无法通过ddhidKeyboard捕获:keyDown.所以我要做的是在足够低的级别创建keydown事件,以便ddhidKeyboard:keyDown识别它.
Quartz Event Services有什么问题?
我认为你是在正确的轨道上,但你应该使用CGEventCreateKeyboardEvent而不是CGPostKeyboardEvent因为后者因Mac OS X 10.6 而被弃用.