OSX에서 C++에서 ApplicationServices 및 CGEventPost를 사용하고 있는데 키를 눌렀을 지 알 수 없지만 작동하지 않습니다.OSX에서 C++의 CGEventPost를 사용하여 키를 누른 상태로 유지하려면 어떻게해야합니까?
void postKeyboardEvent(int keyCode, bool keyUp = false)
{
CGEventSourceRef source = CGEventSourceCreate(kCGEventSourceStateHIDSystemState);
CGEventRef keyEvent = CGEventCreateKeyboardEvent(source, (CGKeyCode) keyCode, !keyUp);
CGEventPost(kCGAnnotatedSessionEventTap, keyEvent);
CFRelease(keyEvent);
CFRelease(source);
}
이 내가 그것을 테스트입니다 방법은 다음과 같습니다 : 여기
은 내가 사용하는 방법입니다 내 이해함으로써postKeyboardEvent(kVK_Command);
postKeyboardEvent(kVK_Tab);
postKeyboardEvent(kVK_Tab, true);
postKeyboardEvent(kVK_Command, true);
이 다른 창에 저를 전환해야하지만, 대신 그냥 " "Command 키를 놓고 Tab 문자를 입력하십시오. 중요
: 나는 같은 것을 사용하지 않으려는 다음
CGEventSetFlags(keyEvent, kCGEventFlagMaskCommand);
내가가 필요없이 키 다운과 키 업의 "직렬 체인"명령 을 보낼 필요가있다 어떤 키 코드가 수정 자 키인지 알 수 있으며 얼마나 많은 이벤트를 플래그 할 지 알 수 있습니다.
이 방법이 있습니까?
코드를 사용해 보셨습니까? 작동하지 않습니다 – user2159978
이것은 오래된 것입니다, 애플은 일을 바꿨을 수도 있습니다. 나는이 작업을 오래 동안하지 않았으므로 최신 OSX에서 작동하는지 모르겠습니다. –