Carbon-OSX-使用CGEventPost发送修改的密钥事件

Carbon-OSX-使用CGEventPost发送修改的密钥事件,c,macos,events,keyboard,macos-carbon,C,Macos,Events,Keyboard,Macos Carbon,我试图以编程方式发送修改过的击键,例如大写字母“a”。问题是移位修改器似乎没有任何效果 在我的代码中,我有两个事件,一个用于shift键向下,另一个用于“m”键向下 CGEventRef mDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)46, true); CGEventRef shiftDown = CGEventCreateKeyboardEvent(NULL, (CGKeyCode)56, true); CGEventPo

我试图以编程方式发送修改过的击键,例如大写字母“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”


任何帮助都将不胜感激。

您应该改用CGEventKeyboardSetUnicode解压。请参阅以获取一些示例代码。

CGEventKeyboardSetUnicodeString()不支持向事件添加诸如Ctrl之类的修饰符。