0

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

在我的代码中,我有两个事件,一个用于按下 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'!

任何帮助,将不胜感激。

4

1 回答 1

2

您应该改用 CGEventKeyboardSetUnicodeString 。有关一些示例代码,请参见此处

于 2010-02-19T04:11:07.180 回答