Я использую CGEventCreateKeyboardEvent
для создания и CGEventPost
для публикации события на Mac. Следующий код прекрасно работает для нажатия клавиши «а».
CGEventRef downEvent = CGEventCreateKeyboardEvent(NULL, 0, YES);
CGEventPost(kCGHIDEventTap, downEvent);
CFRelease(downEvent);
Проблема заключается в том, что у пользователя может быть нажата клавиша-модификатор. Например, когда пользователь уже нажал клавишу «Command» во время отправки событий клавиатуры, Command + a будет отправлено активному приложению вместо только символа a.
Есть ли способ обойти это? Могу ли я прямо сказать, что хочу опубликовать символ, игнорируя любые (модифицирующие) клавиши, которые, возможно, уже были нажаты.