2010-12-14 183 views
0

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

默认情况下,你可以改变空间与控制键+你想要改变的空间的数字键,这里是我使用的,但不工作的代码:

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); 

回答

2

OK,发现解决方案中,发布事件的正确代码是:

CGEventPost(kCGHIDEventTap, spaceDownEvent);