怎么样区别键盘上的每一个键?
连左右shift都要区别的那种

解决方案 »

  1.   

    Delphi 键盘码表 
     
    资料来源:Delphi Windows 单元文件 表格整理:http://www.netgocn.com 
     
    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;  
       
    不知有没有帮助
      

  2.   

    procedure TFormShutWindows.btnOKKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    beginend;由参数shift判断shift、ctrl、alt键是否按下,有左右区别,具体有哪些值看看帮助吧,参数key判断一般按键,可以由“#”加一个数字表示,这个数字是这个字符在ACSII码中的编号,比如#8就是退格键,#65就是A。