2014-04-08 6 views
0

KINECT로 C++ 응용 프로그램을 만들고 있습니다. 기본적으로 alt f4를 보내면 키 보드에서 alt f4 키를 누르는 것처럼 내 포커스가 아닌 창을 닫을 수 있습니다. 미리 감사드립니다.C++에서 ALT + F4 키 누르기 시뮬레이션

임은 이미 입력에 몇 가지 다른 키를 VkKeyScanA를 사용하지만, 난 그냥 캔트이 작업을 수행하는 하나 개 이상의 방법이있다 ALR + F4

답변

2

의 키 코드를 찾을 수 있습니다. 에뮬레이트하는 키 스트로크는 프로세스의 키보드 상태를 충분히 제어 할 수 없으므로 마지막으로해야 할 일입니다.

첫 번째 것은 WM_SYSCOMMAND, SC_CLOSE 명령을 보내려면 GetForegroundWindow + SendMessage입니다. Alt + F4가 기본 창 프로 시저에 의해 처리 될 때 Alt + F4가 수행하는 작업입니다. 프로그램에서 WM_SYSCOMMAND 처리를 무시하지 않으면 기본적으로 WM_CLOSE를 보냅니다.

자신 만의 창을 만들면 전경 창을 찾으려하지 않아야합니다. APPCOMMAND_CLOSE 명령을 사용하여 WM_APPCOMMAND를 사용자 고유의 창에 보냅니다. DefWindowProc()에 대한 호출은 명령을 여러 레이어를 통해 쉘에 전달합니다.

WM_CLOSE와 같은 더 강력한 방법을 고려중인 경우 Raymond Chen의 recent blog post을 검토하십시오.

+1

대단히 감사합니다. SendMessage (GetForegroundWindow(), WM_CLOSE, NULL, NULL) 만 해 주셔서 감사합니다. –

관련 문제