2013-11-28 3 views
0

비활성 창 (VLC 미디어 플레이어)에 키 입력을 보내려고합니다.최소화 된 VLC로 키 입력 보내기

HWND hwndWindowTarget; 

HWND hwndWindowVLC = FindWindow(NULL, L"VLC media player"); 
if (hwndWindowVLC) 
{ 
    // Find the target class window within VLC. 
    hwndWindowTarget = FindWindowEx(hwndWindowVLC, NULL, L"QWidget", NULL); 
    if (hwndWindowTarget) 
    { 
     PostMessage(hwndWindowTarget, WM_CHAR, 'P', 0); 
    } 
} 

그것은 메모장 잘 작동 : 나는 아래

++ 내가 노력 코드를 C이다 사용하고 있습니다. 나는 틀린 것을 모른다. 대부분 findwindowex의 창 대상 이름 때문일 수 있습니다.

내가 VLC의 클래스 이름을 얻을 ++ WinSpy을 사용했다 :

image

저를 도와주십시오. 무엇이 잘못되었거나 VLC의 올바른 클래스 창 이름의 이름이 무엇인지 알면 제게 알려주십시오. 많은 감사합니다!

+0

아마도이 클래스가있는 다른 창이있을 것입니다. – chris

+0

어떻게 그 정보를 찾을 수 있습니까? 고맙습니다. – Raymond

+0

이것은 Winspy의 결과입니다. http://postimg.org/image/f3z16l0kf/ – Raymond

답변

0

VLC 창에 클래스 이름이 QWidget 인 자식 창이 없으므로 FindWindowEx()은 실패하고 NULL을 반환합니다. VLC 창 자체가 QWidget 클래스입니다 (WinSpy ++에서 알려주기 때문에). 대신 다음을 시도하십시오.

HWND hwndWindowVLC = FindWindow(L"QWidget", L"VLC media player"); 
if (hwndWindowVLC) 
{ 
    PostMessage(hwndWindowVLC, WM_CHAR, 'P', 0); 
} 
+0

나는 당신의 제안을 시도했지만 효과가 없다. VLC에게 아무 것도 보내지 않습니다. – Raymond

+0

@Raymond : VLC에 "P"를 보내는 목적은 무엇입니까? 의도 한 목표는 무엇입니까? VLC가 설치되어 있지만 키보드에''P ''를 입력해도 아무런 변화가 없으므로, 무엇을하려고합니까? –

+0

키보드에서 'P'를 눌러 '이전'을 실행하려고하면 해당 이벤트가 트리거됩니다. – Raymond

관련 문제