Einzelnen Beitrag anzeigen

Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Notebook Presenter Mouse - Abfangen der Präsentationstas

  Alt 11. Jul 2008, 16:37
Mit einem Hook funktioniert es definitiv nicht!
Hab es mal mit der Klasse JvAppCommand aus den JVCL probiert, auch hier klappt der Hook nicht.
Es scheint so, dass die "Microsoft IntelliPoint"-Software hier ihr eigenes Süppchen kocht...

Läuft weder WMP noch PowerDVD, so wird über die Play/Pause-Taste selbst bei installiertem Hook der WMP gestartet!
Wenn WMP oder PowerDVD läuft, so erhalten diese stets die Nachrichten der Tasten, sogar wenn diese minimiert sind!
Irgendwie müsste ich doch sowas dann auch hinkriegen? Ich vermute ja immernoch, dass die IntelliPoint-Software eine Art Liste von Multimediaprogrammen hat, an die diese Tasten gesendet werden, wenn sonst kein Programm vorher die Tasten verarbeitet hat. Und da hilft wohl kein Hook...

Oder es ist vielleicht so, dass diese Programme (WMP/PowerDVD) sich beim Start bei der IntelliPoint-Software "registrieren", damit die Software nun weiß, dass ein solches Programm läuft, dem es die Tasten sendet...
Ein Idiz dafür habe ich in der Dokumentation über FindWindow() gefunden:
Zitat:
To check if the Microsoft IntelliType version 1.x software is running, call FindWindow as follows:
Code:
FindWindow("MSITPro::EventQueue",NULL);
To check if the IntelliType version 2.0 software is running, call FindWindow as follows:
Code:
FindWindow("Type32_Main_Window", NULL);
If the IntelliType software is running, it sends WM_APPCOMMAND messages to the application. Otherwise the application must install a hook to receive WM_APPCOMMAND messages.
Wie versteht ihr diese Aussage?
Man ruft FindWindow mit den entsprechenden Parametern auf, dann hat man sich bei der Software "registriert" und erhält die Tasten von WM_APPCOMMAND auch ohne Hook (der ja nicht funktioniert)?
...klingt unlogisch, aber so habe ich diese Aussage verstanden?!?
Was meint ihr?

[Edit]
Ist wohl eher so zu verstehen: Wenn die IntelliPoint-Software läuft, dann verschickt sie WM_APPCOMMAND Nachrichten. Wenn sie nicht läuft, muss man einen Hook installieren, um die Nachrichten zu empfangen.
Mit anderen Worten: Wenn sie läuft, funktioniert kein Hook, sondern nur das normale Empfangen der Nachrichten.
So kann ich es ja auch bestätigen: Ein Hook funktiniert nicht bei laufender IntelliPoint-Software!
[/Edit]

Allerdings ist der Artikel wohl schon etwas älter und inzwischen heißt die Software "Microsoft IntelliPoint" Version 6.2.
Mit den oben genannten FindWindow-Aufrufen habe ich auch immer 0 zurückbekommen...
Kennt jemand den FindWindow-Aufruf für die aktuelle Version dieser Software?
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat