Entwickler-Ecke
Windows API - Multimedia Messages Hooken
rangermayr - Mi 14.03.07 12:01
Titel: Multimedia Messages Hooken
Hallo Forum,
ich habe folgendes Problem. Ich habe mir eine Microsoft Wireless Presenter Mouse 8000 gekauft um diese bei Präsentationen einzusetzen.
Nun ist es leider so daß diese Maus Multimediamessages versendet anstelle von Tastencodes (dies ist auch nicht einstellbar).
Ich möchte mir nun eine Hook Dll programmieren mit der ich diese Messages ( APPCOMMAND_MEDIA_NEXTTRACK, APPCOMMAND_MEDIA_PREVIOUSTRACK, APPCOMMAND_MEDIA_STOP, APPCOMMAND_MEDIA_PLAY_PAUSE) wenn sie ankommen auf Tastendrücke (N, P, S, B) ummappen kann.
Zuerst habe ich mir ein Testprogramm geschrieben um zu prüfen welche Msgs die Maus sendet.
Das funktioniert fast gut. Bis auf die Tatsache daß die APPCOMMAND_MEDIA_PLAY_PAUSE irgendwie nicht ankommt, bzw vorher abgefangen wird. Wo weiß ich nicht.
Dann habe ich eine Hook DLL geschrieben. Den Hook mit
hKeyHook := SetWindowsHookEx(WH_KEYBOARD, KeyHookFunc, hInstance, 0); eingehängt.
Die Multimediatasten auf dem Keyboard (APPCOMMAND_MEDIA_NEXTTRACK, APPCOMMAND_MEDIA_PREVIOUSTRACK, APPCOMMAND_MEDIA_STOP, APPCOMMAND_MEDIA_PLAY_PAUSE) werden erkannt, wenn ich die Maus benutze passiert nichts. Keine Message gar nichts.
Wer kann mir sagen welchen Fehler ich mache. Ich denke ich muß den Hook irgendwie anders einhängen... sicher bin ich mir nicht.
Bitte helft mir...
(Ich gebe zu, daß ich schon länger nichts mehr mit Delphi gemacht habe. Ich benutze die Delphi 2005 personal Edition).
Gruß
Robert
Gausi - Mi 14.03.07 12:14
Ich hab mich damit auch mal beschäftigt. Evtl. hilft dir
dieser Thread [
http://www.delphi-forum.de/viewtopic.php?t=55823&highlight=hook] weiter. Grundproblem dürfte sein, dass man für Multimediatasten keinen Keyboard-Hook benötigt, sondern einen Shell-Hook. Dass bei dir die Tasten auf der Tastatur trotzdem funktionieren, verwirrt mich jetzt ehrlich gesagt etwas :nixweiss:
rangermayr - Mi 14.03.07 12:18
Hallo Gausi,
oops, kleiner Fehler, es war die WM_SHELL mit der ich die Keyboardtasten abfangen konnte, leider kommt über WM_SHELL für die Maus nichts an, obwohl der lParam identisch ist (Keyboard / Maus).
Den Code den du mir gesandt hast habe ich auch gefunden. Fängt nichts....
Ich spiele jetzt schon seit über einer Woche damit rum und hab auch schon alles durchgelesen was google und die div. Foren dazu usw ausspucken.
Gruß
Robert
Gausi - Mi 14.03.07 12:29
Hm. Dann weiß ich auch nicht weiter.
Wird bei der Installation der Maus evtl. ein Stück Software installiert, die dazwischenfunkt? Bei meiner Logitech-Tastatur nennt sich das iTouch, was die Messages irgendwo auf Treiberebene abfängt und lustig im System rumverschickt. Verstanden hab ich das Prinzip bis heute nicht.
Evtl. läuft bei der MS-Maus was vergleichbares ab.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!