keybd_event & FindWindow - Elegantere Lösung möglich??
-
Hi!
Bin schon den ganzen Tag dabei eine Möglichkeit zu finden unter Windows XP eine Funktion zu erstellen, mit der ich PowerDVD sagen kann, dass es "pausieren" soll.
Hab das ganze nun auch gelöst bekommen, aber so ganz zufrieden bin ich damit noch nicht. Hab hier im Forum einige Beiträge zum Thema gefunden aber noch keine schönere Lösung.Hier mein Code:
HWND hWnd1; hWnd1 = FindWindow("CyberLink Video Window Class", "D:\\wl.wmv"); SetForegroundWindow(hWnd1); keybd_event(VK_SPACE,0xb9,0 , 0); //Space Press keybd_event(VK_SPACE,0xb9, KEYEVENTF_KEYUP,0); // Space ReleaseWas mir daran nicht gefällt:
- Die Funktion "FindWindow" benötigt den Window Name (D:\\wl.wmv)
- PowerDVD muss erst in den Vordergrund geholt werden (SetForegroundWindow) um die Tasenkombination übergeben zu könnenHabt ihr vielleicht noch eine elegantere Lösung für mich? Hab auch schon den wParam und den lParam ausgelesen, der für die "Pause-Funktion" zuständig sein müsste aber bisher keine fortschritte gemacht.
Gruß Timmey
-
findwindow benötigt nur einen von beiden parametern.
evtl. wm_keydown an hwnd1 senden
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardinput/keyboardinputreference/keyboardinputmessages/wm_keydown.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/windowing/messagesandmessagequeues/messagesandmessagequeuesreference/messagesandmessagequeuesfunctions/sendmessage.asp
-
THX!
Tatsache, braucht nur einen Parameter... na toll

Mit lParam und wParam hatte ich bislang keine Erfolge erzielt. Werd mich aber zu hause noch mal ran setzen und ein wenig testen. Bekomm das schon zum Laufen!
Mit Spy++ hatte ich als wParam-Wert 00 00 00 00
und als lParam 00 12 E4 D8 erhalten. Allerdings hat das Programm darauf nicht regaiert. Hab den "Pause Button" mit der Maus betätigt. Evtl. noch mal den Keyboard Befehl "Space" monitoren wie er von PowerDVD verarbeitet wird...THX erstmal...
-
warum so kompliziert

SendMessage(hwnd1, WM_KEYDOWN, VK_SPACE, 0);müsste ausreichend sein.
die maus sendet ein anderes wparam und lparam

-
Frag mich nicht warum aber darauf reagiert PowerDVD nicht. Obwohl es so rein äußerlich für mich keinen Unterschied macht! Ich will es aber nachher noch mal mit Spy++ und einer Tastatureingabe versuchen! Vielleicht bekomme ich da ja noch was raus.