【发布时间】:2016-07-27 23:58:33
【问题描述】:
我正在尝试以编程方式生成键盘 keydown 和 keyup 事件。我目前正在使用 CGPostKeyboardEvent 来执行此操作,但我正在寻找一种在较低级别执行此操作的方法。我查看了 DDHidLib,但无法找到创建假事件的方法。有人可以帮忙吗?
更新: 感谢 weichsel 的建议,我现在正在创建一个按键事件,其中包含以下内容:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
我找到了here。
但是,我的问题仍然存在,所以我会详细说明一下。我想发送按键的应用程序(第 3 方)实现 DDHidLib's 键捕获功能:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
而且永远不会使用当前方法调用它。我的猜测是,使用 CGEventCreateKeyboardEvent 模拟的按键级别太高,无法被 ddhidKeyboard:keyDown 捕获。所以我要做的是在足够低的级别创建keydown事件,以便ddhidKeyboard:keyDown可以识别它。
【问题讨论】:
标签: c objective-c cocoa macos hid