2010-12-14 22 views
0

J'essaie d'afficher un événement clavier pour déclencher un changement d'espace.Evénement post-clavier

Par défaut, vous pouvez modifier les espaces avec la touche de commande + la touche numérique pour l'espace que vous souhaitez changer, voici le code que je utilise mais ne fonctionne pas:

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

Répondre

2

OK, trouvé la solution, où poster l'événement le code correct est:

CGEventPost(kCGHIDEventTap, spaceDownEvent);