Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi suche liste mit key-codes (https://www.delphipraxis.net/83876-suche-liste-mit-key-codes.html)

ghost007 7. Jan 2007 20:39


suche liste mit key-codes
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich verwende die keyhook.dll aus dem anhang um tastendrücke für ein applet für meine g15 logitech tastatur zu ermitteln. In dem programm werte ich die informationen der keyhook.dll wie folgt aus:
Delphi-Quellcode:
  public
    procedure AppMessage(var Msg: TMsg; var Handled: Boolean);
//...//
procedure TformMain.AppMessage(var Msg: TMsg; var Handled: Boolean);
var szKeyName: PChar;
  k: string;
begin

  with Msg do if (message=(WM_APP+666)) and ( wParam=13 ) then
  begin

      // Vol Wheel
      case Msg.lParam of
        174 : WheelDown();
        175 : WheelUp();
      end;

      // Alphanumerical
      case Msg.lParam of

        // Backspace
        8 :  if Length( edit1.text ) > 0 then
                  edit1.text := AnsiLeftStr( edit1.text, Length( edit1.text ) - 1 );

        // Enter
        //13 :  

        // Escape
        //27 :

        // Space
        32 :    edit1.Text := edit1.Text + ' ';

        // 0-9
        48..57 : edit1.Text := edit1.Text + IntToStr( Msg.lParam - 48 );

        // a-z
        65..90 : edit1.Text := edit1.Text + letters[ Msg.lParam - 64 ];

        // '-' key (hiphen)
        189 :   edit1.Text := edit1.Text + '-';
      end;

    Handled:=True;
  end;

end;
für die auswertung der einzelnen buchstaben wird also zwischen den jeweiligen integerwerte
differenziert.
So steht z.B.13 für enter oder 32 für space oder 27 für escape.
Wie komm ich an sämtliche integerwerte alle tasten auf ,meiner tastatur?
Auch zu fen werten für z.B.shift,die numpad tasten,die F tasten.
Gibts dafür eine liste?

MfG - Ghost007
[EDIT]
Datein angehängt ^^
[/EDIT]

mr47 7. Jan 2007 20:46

Re: suche liste mit key-codes
 
Das dürften die ASCII-Codes sein. Such bei Google nach "ASCII Tabelle". Allerdings sind das nicht alle Sonderzeichen! Alternativ kannst du den ASCII-Code mit ord() herausfinden, den Buchstaben zum Wert mit chr()

gruß

ghost007 7. Jan 2007 21:11

Re: suche liste mit key-codes
 
hm ... hab mir ma ein paar von den listen durch gesehn, wenn ich nun die shift taste abfangen will sollte das doch so gehn, oder?
Delphi-Quellcode:
        //Shift out
        14 : Label3.Caption:='out';

        //Shift in
        15 : Label3.Caption:='in';
Wenn ich nun aber den hook laufen habe und die shifttaste drücke passiert gar nichts :(

MfG - Ghost007

P.S.Die liste mit den codes hab ich von dieser seite.

DGL-luke 7. Jan 2007 21:18

Re: suche liste mit key-codes
 
Die Shift-Taste steht im ASCII-Satz? würd mich wundern. Ich würds mal mit VK_Shift versuchen, bzw. Delphi-Referenz durchsuchenVirtual Key-Codes, wer das PSDK hat.

Raini750 9. Jan 2007 10:13

Re: suche liste mit key-codes
 
Die komplette Liste der virtuellen Key-Codes steht in Windows.pas:
VK_LBUTTON = 1;
VK_RBUTTON = 2;
VK_CANCEL = 3;
VK_MBUTTON = 4; { NOT contiguous with L & RBUTTON }
VK_BACK = 8;
VK_TAB = 9;
VK_CLEAR = 12;
VK_RETURN = 13;
VK_SHIFT = $10;
VK_CONTROL = 17;
VK_MENU = 18;
VK_PAUSE = 19;
VK_CAPITAL = 20;
VK_KANA = 21;
VK_HANGUL = 21;
VK_JUNJA = 23;
VK_FINAL = 24;
VK_HANJA = 25;
VK_KANJI = 25;
VK_CONVERT = 28;
VK_NONCONVERT = 29;
VK_ACCEPT = 30;
VK_MODECHANGE = 31;
VK_ESCAPE = 27;
VK_SPACE = $20;
VK_PRIOR = 33;
VK_NEXT = 34;
VK_END = 35;
VK_HOME = 36;
VK_LEFT = 37;
VK_UP = 38;
VK_RIGHT = 39;
VK_DOWN = 40;
VK_SELECT = 41;
VK_PRINT = 42;
VK_EXECUTE = 43;
VK_SNAPSHOT = 44;
VK_INSERT = 45;
VK_DELETE = 46;
VK_HELP = 47;
{ VK_0 thru VK_9 are the same as ASCII '0' thru '9' ($30 - $39) }
{ VK_A thru VK_Z are the same as ASCII 'A' thru 'Z' ($41 - $5A) }
VK_LWIN = 91;
VK_RWIN = 92;
VK_APPS = 93;
VK_NUMPAD0 = 96;
VK_NUMPAD1 = 97;
VK_NUMPAD2 = 98;
VK_NUMPAD3 = 99;
VK_NUMPAD4 = 100;
VK_NUMPAD5 = 101;
VK_NUMPAD6 = 102;
VK_NUMPAD7 = 103;
VK_NUMPAD8 = 104;
VK_NUMPAD9 = 105;
VK_MULTIPLY = 106;
VK_ADD = 107;
VK_SEPARATOR = 108;
VK_SUBTRACT = 109;
VK_DECIMAL = 110;
VK_DIVIDE = 111;
VK_F1 = 112;
VK_F2 = 113;
VK_F3 = 114;
VK_F4 = 115;
VK_F5 = 116;
VK_F6 = 117;
VK_F7 = 118;
VK_F8 = 119;
VK_F9 = 120;
VK_F10 = 121;
VK_F11 = 122;
VK_F12 = 123;
VK_F13 = 124;
VK_F14 = 125;
VK_F15 = 126;
VK_F16 = 127;
VK_F17 = 128;
VK_F18 = 129;
VK_F19 = 130;
VK_F20 = 131;
VK_F21 = 132;
VK_F22 = 133;
VK_F23 = 134;
VK_F24 = 135;
VK_NUMLOCK = 144;
VK_SCROLL = 145;
{ VK_L & VK_R - left and right Alt, Ctrl and Shift virtual keys.
Used only as parameters to GetAsyncKeyState() and GetKeyState().
No other API or message will distinguish left and right keys in this way. }
VK_LSHIFT = 160;
VK_RSHIFT = 161;
VK_LCONTROL = 162;
VK_RCONTROL = 163;
VK_LMENU = 164;
VK_RMENU = 165;
VK_PROCESSKEY = 229;
VK_ATTN = 246;
VK_CRSEL = 247;
VK_EXSEL = 248;
VK_EREOF = 249;
VK_PLAY = 250;
VK_ZOOM = 251;
VK_NONAME = 252;
VK_PA1 = 253;
VK_OEM_CLEAR = 254;

Flips 9. Jan 2007 18:06

Re: suche liste mit key-codes
 
DSDT :wink:


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:10 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz