Carbon - OS X - Отправка модифицированных ключевых событий с помощью CGEventPost - PullRequest
0 голосов
/ 18 февраля 2010

Я пытаюсь программно отправить измененные нажатия клавиш, например, заглавную "А".Проблема в том, что модификатор 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'!

Буду признателен за любую помощь.

1 Ответ

2 голосов
/ 19 февраля 2010

Вместо этого вы должны использовать CGEventKeyboardSetUnicodeString. См. здесь для примера кода.

...