2010-07-30 5 views
1

나는 CGEventCreateKeyboardEvent을 사용하여 생성하고 CGEventPost을 사용하여 Mac에 이벤트를 게시합니다. 다음 코드는 'a'키를 누를 때 완벽하게 작동합니다.CGEventCreateKeyboardEvent가 이미 수정 자 키를 누르지 못하도록

CGEventRef downEvent = CGEventCreateKeyboardEvent(NULL, 0, YES); 
CGEventPost(kCGHIDEventTap, downEvent); 
CFRelease(downEvent); 

문제는 사용자가 수정 자 키를 눌렀을 가능성이 있다는 사실에 있습니다. 예를 들어 키보드 이벤트가 전송되는 동안 사용자가 이미 Command 키를 누른 경우, 문자 a 대신에 Command + a가 활성 응용 프로그램으로 전송됩니다.

이 문제를 해결할 방법이 있습니까? 이미 눌렀을 수있는 (수정 자) 키를 무시하고 캐릭터를 게시하고 싶다고 명시 적으로 말할 수 있습니까?

답변

1

이벤트 플래그를 0으로 설정해 보았습니까?

+0

Nope는 그것을 시도하지 않았지만 변경자 키가 이전 이벤트에 의해 설정 되었기 때문에 도움이되지 않는다고 생각했습니다. 가치가 있습니다. 편집 : 일했습니다. – klaaspieter

관련 문제