如何在 os x 上模拟低级按键?
-
20-09-2019 - |
题
我正在尝试以编程方式生成键盘 keydown 和 keyup 事件。我目前正在使用 CGPostKeyboardEvent 来执行此操作,但我正在寻找一种在较低级别执行此操作的方法。我查看过 DDHidLib 但无法找到创建假事件的方法。有人可以帮忙吗?
更新: :感谢 weichsel 的建议,我现在正在创建一个按键事件,内容如下:
CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
CGEventPost(kCGSessionEventTap, e);
CFRelease(e);
我发现了 这里.
然而, ,我的问题仍然存在,所以我会详细说明一下。我想要发送按键来实现的应用程序(第 3 方) DDHidLib 的 按键捕捉功能:
- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
keyDown: (unsigned) usageId;
并且使用当前方法永远不会调用它。我的猜测是,使用 CGEventCreateKeyboardEvent 模拟的按键按下级别太高,无法被 ddhidKeyboard:keyDown 捕获。所以我想做的是在足够低的级别创建 keydown 事件,以便 ddhidKeyboard:keyDown 能够识别它。
解决方案
这有什么错Quartz事件服务?点击
我认为你是在正确的轨道上,但你应该使用的 CGEventCreateKeyboardEvent
代替CGPostKeyboardEvent
因为,由于Mac OS X的10.6。
不隶属于 StackOverflow