发布键盘事件

时间:2010-12-14 04:41:24

标签: objective-c cocoa

我正在尝试发布键盘事件以触发Space更改。

默认情况下,您可以使用控制键更改Spaces +您希望更改为的空格的数字键,这是我正在使用但不起作用的代码:

int spaceToChangeTo = 3;
int keyCodeForSpace = space + 17; // keycode 18 = number 1 on the keyboard, and onwards.

CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateCombinedSessionState);

CGEventRef spaceDownEvent = CGEventCreateKeyboardEvent(source, (CGKeyCode)keyCodeForSpace, YES);
CGEventSetFlags(spaceDownEvent, kCGEventFlagMaskControl);

CGEventRef spaceUpEvent = CGEventCreateKeyboardEvent(source, (CGKeyCode)keyCodeForSpace, NO);

CGEventPost(kCGAnnotatedSessionEventTap, spaceDownEvent);
CGEventPost(kCGAnnotatedSessionEventTap, spaceUpEvent);

CFRelease(spaceDownEvent);
CFRelease(spaceUpEvent);
CFRelease(source);

1 个答案:

答案 0 :(得分:2)

好的,找到了解决方案,在这里发布了正确的代码:

CGEventPost(kCGHIDEventTap, spaceDownEvent);