type TForm1 = class(TForm) Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end;
var Form1: TForm1; WM_Sock :Integer; hHandle :HWND; Hook :HHook; implementation
{$R *.dfm} function LowLevelKeyboardProc(vNode:Integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall; type KbDllHookStruct = record vkCode:DWord; ScanCode:DWord; Flags:DWord; Time:DWord; dwExtraInfo:DWord; end; var P:^KbDllHookStruct; begin Result := 0; P := Pointer(LPARAM); if vNode = HC_ACTION then begin case wParam of WM_KEYDOWN,WM_SYSKEYDOWN,WM_KEYUP,WM_SYSKEYUP: if p.vkCode = VK_F1 then //判断按下的是不是F1 begin Result := 1; end; end; if vNode <> 0 then Result := CallNextHookEx(0,vNode,wParam,lParam); end; end;