Entwickler-Ecke
Windows API - Hotkey / MediaKey senden simulieren
Olex - Mi 19.12.07 11:25
Titel: Hotkey / MediaKey senden simulieren
Hi ihr kennt doch alle diese tastaturen mit den zusätzlichen tasten
z.B. Play Stop usw um zB den media player zu steuern.
Gibt es denn eine möglichkeit das zu similieren durch ein Delphi Prog?
gruß Olex
Gausi - Mi 19.12.07 12:13
Sende an das Fenster eine WM_APPCOMMAND Message. Im lParam kannst du den Typ der Taste angeben. Dabei sind z.B. folgende Konstanten definiert:
Delphi-Quelltext
1: 2: 3: 4:
| APPCOMMAND_MEDIA_NEXTTRACK = $0B000; APPCOMMAND_MEDIA_PREVIOUSTRACK = $0C000; APPCOMMAND_MEDIA_STOP = $0D000; APPCOMMAND_MEDIA_PLAY_PAUSE = $0E000; |
Olex - Mi 19.12.07 12:55
muss ich mit xspy erst das fenster suchen und dann die message?
wenn ja dann muss ich ja das für alle player machen die es gibt, damit alle unstertützt werden oder?
Gausi - Mi 19.12.07 14:35
Du könntest auch mit HWND_BROADCAST die Message einfach an alle Fenster senden. Ob das unbedingt Sinn macht, weiß ich nicht.
Eine 100%ige Simulation der Tasten wird man mit Delphi kaum hinkriegen, dafür müsste man wohl auf Treiberebene runter. Ein Grund dafür sind die Programme, die bei diesen Dingern teilweise mit installiert werden (z.B. iTouch bei Logitech). Bei mir bewirkt ein Druck auf die Play/Pause Taste z.B., dass ein Medienplayer, der grade läuft auf Play/Pause geht. Wenn kein Player läuft, wird der Standard-Player gestartet. Dieses Verhalten bekommt man mit den Messages alleine nicht hin. D.h. wenn dein Programm diese Messages im System verschickt, bekommt das Treiberprogramm oder was das auch immer ist nichts davon mit.
Der Windows-Media-Player spielt irgendwie auch noch ne Sonderrolle, aber da blicke ich nicht ganz durch.
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!