![]() |
Auf Tastendruck der Spezialtastatur reagieren!
Guten Abend die Damen und Herren, ich hab mal wieder ne bescheidene Frage...
Also ich hab ne Tastatur von "Creative" und die hat so zusatztasten wie Play/pause oder Stop, kennt jeder. So, die Frage is jetzt aber, wie kann ich die abfangen, gibts für die vielleicht auch sowas wie VK_playpause oder so ? also VK_PLAY gibts, is aber nich das richtige ^^ wie man systemweit Tastenanschläge abfängt weiß ich, aber leider nich für diese Tasten. :wall: :gruebel: Danke schon mal im Vorraus ^^ :lol: |
Re: Auf Tastendruck der Spezialtastatur reagieren!
Hallo!
Öffne ein neues Projekt und erweitere die Ereignisbehandlung für OnKeyDown des Formulars etwa so:
Delphi-Quellcode:
Dann siehst Du in der Fensterleiste, welchen Wert die Tasten zurückgeben. Bei mir hat z.B. diese Play/Pause-Taste den Wert 179.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin Caption:= IntToStr(Key); end; Dann kannst Du ganz einfach im OnKeyDown oder OnKeyUp auf diesen Wert überprüfen:
Delphi-Quellcode:
Ich weiß nicht, ob sich alle Tastatur-Hersteller auf den selben Standard für die Multimediatasten geeinigt haben; es kann sein, dass eine andere Tastatur einen anderen Wert zurück gibt.
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
begin case Key of 179: { Play/Pause } end; end; |
Re: Auf Tastendruck der Spezialtastatur reagieren!
Die Multimediatasten kommen per WM_APPCOMMAND. Die JVCL hat eine einfache Komponente dazu (TJvAppCommand).
|
Re: Auf Tastendruck der Spezialtastatur reagieren!
Joa also danke erstmal an beide aber ich hab da noch nen Problem.
@Dunkel mit deiner Variante bekomm ich zwar raus, wie der Integerwert für die Taste is, aber ich brauch den wert inna anderen Form, der "VK_" Keys oder in der Form : "$xx", weil wenn ich nen Windows-Hotkey erstelle brauch ich die in der Form. Ich will das Ganze ja systemweit abfangen. @Robert Marquardt Hmm, damit komm ich gar net klar ^^ Du redest bestimmt von Messages oder ?? damit hab ich leider null ahnung ^^ außerdem werden die doch auch nur Anwendungsweit abgefangen, oder ? naja wenn du das noch nen kleines bisschen ausführlicher beschreiben könntest, wär echt nice ^^ Danke |
Re: Auf Tastendruck der Spezialtastatur reagieren!
Na dann fangen wir mal vorne an. Erstens sind das keine Tasten die VK_-Tastencodes haben und zweitens kommen sie garnicht von der Tastatur.
Bei einer USB-Tastatur gibt es zwei separate Geraete. Die nortmale Tastatur und die Multimedia-Tasten als eigenes Geraet (und das ist noch vereinfacht). Ein System-Service liest dieses Geraet und generiert WM_APPCOMMAND Messages an das Programm mit dem Fokus. Signalisiert die Applikation das sie die WM_APPCOMMAND Messages akzeptiert (per Rueckgabewert von SendMessage), dann macht der Service nichts weiter. Hat die Applikation kein Interesse an der Message bekundet, so implementierr der Service das Standardverhalten und startet beispielsweise den Browser oder den Taschenrechner oder veraendert die Lautstaerke. Wieso willst du ueberhaupt systemweit die Tasten abfangen? Das macht ueblicherweise keinen Sinn. Tasten gehen nur das Programm mit Fokus etwas an. |
Re: Auf Tastendruck der Spezialtastatur reagieren!
ich will die Tasten nutzen für mein Winamp-Controll Programm, wenn ich zum Beispiel Counter-Strike spiele, dann will ich nich immer raus aus dem Spiel und dann von Hand umstellen. Die Tasten funktionieren komischerweise nur mit dem wmp ... achso und meine tastatur is ganz normal über PS2 angeschlossen, kein USB. Die Frage is jetzt eigentlich nur, wie ich diese nutzen kann ?! Aber danke für die Aufklärung ;)
|
Re: Auf Tastendruck der Spezialtastatur reagieren!
Wie das bei PS/2-Tastaturen genau geregelt ist, weiss ich nicht, aber letztlich werden die Multimediatasten sicherlich an den Service weitergereicht.
Es gibt doch einige VK_-Codes fuer dieser Tasten (schlag mal bei Microsoft in der Onlinehilfe nach). Es kann sein das man darauf Hotkeys setzen kann. Probier mal aus. |
Re: Auf Tastendruck der Spezialtastatur reagieren!
Jo danke hat sich erledigt , gibt wirklich VK_ Keys dafür ^^
ich schreib die mal hier hin, für alle die es auch später nutzen wollen : aus der "JwaWinUser.pas" : Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:17 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