Carbon - OS X - 使用CGEventPost发送修改后的密钥事件

时间:2010-02-18 14:50:33

标签: c macos events keyboard macos-carbon

我正在尝试以编程方式发送修改过的击键,例如大写“A”。问题是移位修饰符似乎没有任何影响。

在我的代码中,我有两个事件,一个用于shift键,另一个用于'm'键。

CGEventRef mDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)46, true);

CGEventRef shiftDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, true);

    CGEventPost(kCGAnnotatedSessionEventTap, shiftDown);
    CGEventPost(kCGAnnotatedSessionEventTap, mDown);}
    CFRelease(shiftDown);
    CFRelease(mDown);

遗憾的是,结果总是一个小案例'm'!

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

您应该使用CGEventKeyboardSetUnicodeString。有关示例代码,请参阅here