我正在寻找一种方法来设计一个带有修饰键的小面板(例如shift,command),并且必须有可能像虚拟键盘那样点击它。CGEventPost - 按住一个按键(shift)
我想它有这样的行为:
- 点击虚拟键(移)。
- 换档按钮持有,并一直按下。
- 用我的标准键盘输入内容。
- 点击虚拟shift键上的另一个时间释放它。
这里是我使用的代码:
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef shiftKeyDown = CGEventCreateKeyboardEvent(source, (CGKeyCode)56, YES);
CGEventRef shiftKeyUp = CGEventCreateKeyboardEvent(source, (CGKeyCode)56, NO);
CGEventPost(kCGAnnotatedSessionEventTap, shiftKeyDown);
CGEventPost(kCGAnnotatedSessionEventTap, shiftKeyUp);
CFRelease(shiftKeyUp);
CFRelease(shiftKeyDown);
CFRelease(source);
我不能找到一种方法来保持按下状态,直到我点击它另一个时间。我虽然“按下按钮”按钮单元格类型是关键,但不幸的是没有。 :-)
有帮助吗?
在此先感谢。
我有一个CGEventPost类似的问题,我试图模拟修饰键按住,但我发现有趣的是,当我移动我的实际鼠标或按下我的实际键盘上的任何键时,这些修改键将被重置,证明通过检查内置键盘查看器。你的情况是一样的吗? – Jerry
你能解决这个问题吗?我看到同样的事情。 –
有同样的问题。 – aristidesfl