Entwickler-Ecke

Windows API - Tastencodes von Multimediatasten


Tilo - Do 19.02.09 22:46
Titel: Tastencodes von Multimediatasten
Hallo mich interessiert ob die Tastencodes der Multimediatasten auf diversen Tastaturen immer gleich sind. Hab dazu mal ein kleines Prog geschrieben.

Für die Ereignisse KeyDown, KeyPress und KeyUp sind jeweils ein Textfeld für den aktuellen Code und ein Logfeld für die 10 letzten Codes da einige Tasten mehrere Codes auslösen, z.B. AltGr.

Der relevante Code ist der:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
procedure TForm1.Verarbeiten(Code: Integer; Textfeld: TEdit; Log: TListBox);
var
buf:string;
begin
 //Texterzeugen
 buf:=inttostr(Code);
 //ins Textfeld schreibern
 textfeld.Text:=buf;

 //loggen
 //max 10 Elemente -> daher alles oberhalb von 9 Elementen löschen
 while Log.Count>9 do
  log.Items.Delete(0);
 //neues Element einfügen
 log.Items.Add(buf);
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 verarbeiten(Key,KeyDownEdit,KeyDownlog);
end;

procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
 verarbeiten(Ord(Key),KeyPressEdit,KeyPresslog);
end;

procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
 verarbeiten(Key,KeyUpEdit,KeyUplog);
end;


Meine Ergenisse:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
MS_MediaPlayer_öffnen  181
Outlook_öffnen    180
Play      179
Stop      178
BackSkip    177
ForwardSkip    176
Lauter      175
Leiser      174
Mute      173
Home(Standardbrowser)  172
Favoriten_öffnen  171
Suche_öffnen    170
Seite_vor    167
Seite_zurück    166


Hab ihr die selben Resultate?


Moderiert von user profile iconNarses: Topic aus Off Topic verschoben am Do 19.02.2009 um 23:04


Gausi - Do 19.02.09 22:50

Ich bekomme da gar keine Ergebnisse.

Normalerweise lösen die Multimediatasten auch keine Key-Events aus. Stattdessen wird eine WM_APPCOMMAND-Message an das Fenster gesendet, deren Parameter dann die genaue Taste enthalten.


jaenicke - Do 19.02.09 22:57

Ich bekomme da die Ergebnisse, aber wozu experimentierst du da herum? Schau doch einfach in die Liste der Tastencodes. :gruebel:
http://msdn.microsoft.com/en-us/library/ms645540.aspx
(ab VK_BROWSER_BACK (0xA6), 0xA6 ist ja 166 ;-))


Tilo - Do 19.02.09 23:32

Grund des "Experiments" war das meine vorherige Tastatur den japutt ging und zwar dahingehend das falsche Codes gesendet wurden. Das aktuelle Programm ist eine Erweiterung des Testprogramms. Interessant ist auch das die MM-Tasten einen keyDown und KeyUp aber kein KeyPress haben.


jaenicke - Do 19.02.09 23:38

Das ist klar, denn KeyPress ist nur für sichtbare Zeichen, wobei Zeilenumbrüche und Leerzeichen auch dazu gehören. ;-)