2010-12-14 5 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

확인, 발견 솔루션에서 올바른 코드를 올리는 위치는 다음과 같습니다.

CGEventPost(kCGHIDEventTap, spaceDownEvent);