OS X에서 낮은 레벨 키 프레스를 시뮬레이션하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1938509

문제

키보드 키 다운 및 키 업 이벤트를 프로그래밍 방식으로 생성하려고합니다. 나는 현재 cgpostkeyboardevent를 사용하여이를 수행하고 있지만 더 낮은 수준에서이를 수행하는 방법을 찾고 있습니다. 나는 ddhidlib을 보았지만 가짜 이벤트를 만드는 방법을 찾을 수 없었습니다. 누구든지 도울 수 있습니까?

업데이트: Weichsel의 조언 덕분에 나는 이제 다음과 함께 열쇠 다운 이벤트를 만들고 있습니다.

  CGEventRef e = CGEventCreateKeyboardEvent (NULL, (CGKeyCode)52, true);
  CGEventPost(kCGSessionEventTap, e);
  CFRelease(e);

내가 찾은 것 여기.

하지만, 내 문제는 여전히 서서 조금 정교하게 될 것입니다. KeyPresses를 구현하기 위해 보내고 싶은 응용 프로그램 (제 3 자) ddhidlib 키 캡처 기능 :

- (void) ddhidKeyboard: (DDHidKeyboard *) keyboard
             keyDown: (unsigned) usageId;

그리고 이것은 현재 방법을 사용하여 호출되지 않습니다. 내 생각에 Cgeventcreatekeyboardevent로 시뮬레이션 된 키 다운은 Ddhidkeyboard : Keydown에 의해 캡처하기에는 너무 높습니다. 따라서 제가하려고하는 것은 Ddhidkeyboard : Keydown에 의해 인식 될 수 있도록 충분히 낮은 수준에서 키 다운 이벤트를 만드는 것입니다.

도움이 되었습니까?

해결책

Quartz 이벤트 서비스에 어떤 문제가 있습니까?
나는 당신이 올바른 길을 가고 있다고 생각하지만 사용해야합니다. CGEventCreateKeyboardEvent 대신에 CGPostKeyboardEvent 후자는 Mac OS X 10.6 이후 더 이상 사용되지 않기 때문입니다.

다른 팁

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top