想要一个最简单的钩子范例--如何截获整个系统键盘按键情况(50分)

  • 主题发起人 主题发起人 WorldCreater
  • 开始时间 开始时间
W

WorldCreater

Unregistered / Unconfirmed
GUEST, unregistred user!
function TForm1.TestHook(code: integer; wparam: WPARAM; lparam: LPARAM):LRESULT stdcall;<br>begin<br>end;<br><br>procedure TForm1.HookBtnClick(Sender: TObject)<br>&nbsp; Hook := SetWindowsHookEx( WH_KEYBOARD, @TForm1.TestHook, Handle, 0 );<br>&nbsp; //hook好象总是为0,没有调用成功<br>end;<br><br>procedure TForm1.UnHookBtnClick(Sender: TObject)<br>begin<br>&nbsp; UnHookWindowsHookEx( Hook ); <br>end;<br>
 
系统HOOK应该写成DLL的形式
 
function TestHook(code: integer; wparam: WPARAM; lparam: LPARAM):LRESULT stdcall;<br>begin<br>end;<br><br>procedure TForm1.HookBtnClick(Sender: TObject)<br>&nbsp; Hook := SetWindowsHookEx( 13, @TestHook, HInstance, 0 );<br>&nbsp; //hook好象总是为0,没有调用成功<br>end;<br><br>procedure TForm1.UnHookBtnClick(Sender: TObject)<br>begin<br>&nbsp; UnHookWindowsHookEx( Hook ); <br>end;<br>
 
LeeChange,<br>&nbsp; 你这样形式的,把testhook不放在类中我也试过了,不成功的
 
HInstance是什么意思?<br>这个参数一改<br>Hook := SetWindowsHookEx( 13, @TestHook, HInstance, 0 );<br><br>在这句上就不能设断点了,否则一按鍵就退出整个delphi的ide环境了<br>
 
要做成DLL的形式,不然怎么钩住其他程序?
 
多人接受答案了。
 

Similar threads

后退
顶部