![]() |
Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hallo,
ich hab eine Logitechtastatur auf welcher sich Sondertasten befinden. Zum Beispiel: Play/Pause, Stop, nächster Titel etc. Jetzt würde ich gern in meinem Programm auf diese Tasten reagieren. Winamp2 reagiert auf die Tasten (Play/Pause etc.), Winamp3 nicht. Jetzt weiß ich nicht ob bei Winamp3 einfach diese Funktionen nicht mehr unterstützt werden oder ob der Tastaturtreiber Play/Pause etc. auslöst wenn Winamp geöffnet ist. Auf der Logitechseite hab ich leider nix gefunden was mir weiterhilft und auch bei google nicht. Und wenn ich bei Logitech anrufe Zitat:
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
Habe mal eben diese Zeilen getippt:
Delphi-Quellcode:
Ergebniss bei meiner Typhoon-Tastatur:
procedure TForm1.FormCreate(Sender: TObject);
begin KeyPreview := True; end; procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin ShowMessage (IntToStr (key)); end;
Code:
Da ich keinen extra Treiber installiert habe kann ich mir gut vorstellen das diese Werte bei allen Tastaturen geleich sind?
Play : 179
Stop : 178 nächster Titel : 176 voriger Tigtel : 177 |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Werden dafür nicht auch diese "Human Interface Device"-Treiber von Windows verwendet?
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
ok, probier ich dann gleich mal wenn ich delphi wieder drauf hab... Sind 176,177,178,179 nicht auch schon durch andere Tasten der Tastatur verwendet?
[Edit]Habs grad ausprobiert und bei mir wird bei den entsprechenden Taste immer 255 ausgegeben[/Edit] |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hi!
Bei meiner Logitech-Tastatur wird gar nichts ausgegeben. Ciao fkerber |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
moin,
meine Medion Tastatur liefert auch:
Code:
Play : 179
Stop : 178 nächster Titel : 176 voriger Tigtel : 177 |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
@fkerber: Welches Betriebssystem hast du? Unter Win98 und Win95 wurde bei mir auch nix ausgegeben. Seit dem ich xp hab kann ich jetzt nicht mal mehr die Lautstärke über die tastaturregeln ohne das der Bildschirmschoner aus geht..
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hi!
Ich verwende WinXP Home, und die Tasten funktionieren auch wunderbar. habe auch rausgefunden, warum er nix anzeigt: Bei mir lief iTouch (= das logitech-Programmm zur Tastatur), mache ich das aus, dann gehen die tasten nimmer (außer lautstärkedreher) aber dann kommen folgende Werte raus:
Code:
Ciao fkerber
Play: #179
Stopp: #178 Vor: #176 Zurück: #177 Lauter: #175 Leiser: #174 Mediencenter: #181 Lautlos an/aus: #173 |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
hmm, muss ich auch mal probieren ob es geht wenn ich itouch ausmache. Allerdings will ich das die tasten auch funktionieren währen itouch an ist, bei winamp2 funktionierts ja auch. Und die Leute welche die Tasten nutzen haben in aller regel auch die dazugehörige software aktiviert
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hallo,
also ich habe das mit meiner elta media auch mal gerade probiert. Das Ergebnis ixt das gleiche wie bei bei sharky und den anderen:
Delphi-Quellcode:
Play: #179
Stopp: #178 Vor: #176 Zurück: #177 Lauter: #175 Leiser: #174 Mediencenter: #181 Lautlos an/aus: #173 Ich benutze im übrigen auch keinen speziellen Tastaturtreiber. Es läßt sich wohl daraus schließen das es bei (fast?) jeder Multimediatastatur so ist. |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Ok, dann werd ich die Tastencodes nehmen die bei der Mehrzahl der leute funkioniert. Thx fürs testen und posten
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Also wenn ich meinen Tastaturtreiber nicht Installiert hab und die Tastatur auch nur über PS2 und nicht über USB betreibe, dann kommen bei mir auch Tastatur-Codes an, aber im Moment kommen keine Codes an (hab ja alles installiert)
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hi,
vielleicht findest du wenn du morgen bei Logitech einen erreichst ja noch mehr raus - vielleicht gibts bspw. sone Art i-Touch API mit der du auf die Tastendrücke reagieren kannst auch wenn i-Touch an ist. Vielleicht könnte man auch mal mit Winsight oder so (weiß nich ob dad damit geht) nachgucken was genau bei i-Touch und Winamp für Messages ein- und ausgehen wenn du eine der Tasten drückst. Ansonsten habe ich bei mir dieselben Werte, wenn i-Touch aus ist. Sonst kommt nix an. Habe Internet Navigator SE von Logitech soweit ich weiß ;-) Bis dann, S - tefano |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Hi,
seit Windows 2000 gibt es diese, oben genannten, virtuellen KeyCodes ($AD bis $B3): ![]() Gruß, Markus |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Delphi meint aber (KeyPress), dass es
VK_MEDIA_NEXT_TRACK (B0) Windows 2000/XP: Next Track key VK_MEDIA_PREV_TRACK (B1) Windows 2000/XP: Previous Track key VK_MEDIA_STOP (B2) Windows 2000/XP: Stop Media key VK_MEDIA_PLAY_PAUSE (B3) Windows 2000/XP: Play/Pause Media key ... nicht kenne. Wie kann ich ein eigenes Programm dazu bringen auf diese Tasten zu reagieren? Wenn ich z.B in einer FullScreenAnwendung [Spiel] bin und ich meinem eigenen MediaPlayer sagen möchte, dass er weiterschalten solle? Kann mir jemand helfen? P.S hab ne Logitech Internet/Office Tastatur |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Oder besser:
Delphi-Quellcode:
const
VK_MEDIA_NEXT_TRACK = $B0; |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Zitat:
Delphi-Quellcode:
Das sind erstmal die funktionen, die du unbedingt brauchst.
const
WM_USER = $0400; // aus messages.pas WM_KEYBHOOK = WM_USER + 346; [...] type [...] var KeyboardHook: HHOOK; function KeyboardProc(hCode: Integer; wParam: Longint; lParam: Longint): LRESULT; stdcall; var Wnd: THandle; begin if hCode = HC_ACTION then begin Wnd := FindWindow(nil, 'Form1'); if Wnd > 0 then PostMessage(Wnd, WM_KEYBHOOK, wParam, lParam); end; Result := CallNextHookEx(KeyboardHook, hCode, wParam, lParam); end; function SetKeyboardHook: Boolean; begin KeyboardHook := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0); Result := KeyboardHook <> 0; end; function RemoveKeyboardHook: Boolean; begin Result := UnhookWindowsHookEx(KeyboardHook); end; Jetzt erstellst du eine prozedur mit dem namen: "WMKEYBHOOK". Das ist so was wie OnKeyPress in diesem fall.
Delphi-Quellcode:
Um die falle jetzt zu starten, irgendwo in dein programm
procedure TMainForm.WMKEYBHOOK(var Msg: TMessage);
begin if IntToStr(Msg.wParam)=13 then [......]; end;
Delphi-Quellcode:
reinschreiben. (OnCreate oder so was)
if not SetKeyboardHook then ShowMessage('error');
Um es zu stopen:
Delphi-Quellcode:
Bei dem Beispiel wurde eigentlich eine dll benutzt, aber ich habe es auch so ausprobiert, das funktioniert trotzdem
if not RemoveKeyboardHook then ShowMessage('error');
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
OK.... danke für die Antwort; werde wohl etwas brauchen um die Funktion zu verstehen... mal nach meinem Umzug testen.
|
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Für allgemeine Fragen bezüglich Hooks kannst du dir von
![]() |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Um mal die Extra-Tasten genauer zu erklaeren:
Die gehoeren garnicht zur Tastatur. Eine USB Tastatur tritt als mehrere Geraete auf und nur die normalen Tasten sind im Keyboard-Interface. Unter Win 2000/XP laeuft ein System-Thread um das zweite Interface auszulesen und die entsprechenden Tasten-Messages zu generieren. Es gibt noch ein drittes Interface nur fuer die Power-Taste auf den Tastaturen. Daraus ergeben sich mehrere lustige Seiteneffekte. Das Keyboard-Interface ist gegen Lesen durch ein Programm geschuetzt, da Windows das Interface exklusiv oeffnet. Das zweite Interface hingegen ist nicht exklusiv geoeffnet (oder unter Win 98 garnicht). Daher kann die Tray-Applikation zum Tastaturtreiber selber die Funktion des in Win 98 fehlenden System-Threads uebernehmen. Zusaetzlich kann die Tray-Applikation auch noch den Treiber beeinflussen und alle moeglichen Mappings vornehmen. |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
Dennoch springt KeyDown bei mir weder auf $B0 an, noch funktioniert die beschriebene Funktion von XHelp.
Hat jemand eine funktionierende Demo? |
Re: Sondertasten (Play, Stop, nächster Titel) bei Tastaturen
evtl auch auf shift+strg+etc down achten dabei
hab ne fujitsu und da sind manche doppelt belegt weils wohl nichtmehr soviele freie vks_ gab. ps habn simplen timer gemacht + getkeystate funzt auch. wie man die keys rausfindet dürfte bekannt sein |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz