郁闷,简单的钩子问题(100分)

  • 主题发起人 主题发起人 seilfer
  • 开始时间 开始时间
S

seilfer

Unregistered / Unconfirmed
GUEST, unregistred user!
我的一个程序要调用DLL中的钩子函数拦截别的程序的鼠标消息,如下:<br><br>主程序中的调用:<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp;hin:=0;<br>&nbsp; &nbsp;hin:=findwindow(0,'某个窗体');<br>&nbsp; &nbsp;if hin=0 then<br>&nbsp; &nbsp; &nbsp;begin<br>&nbsp; &nbsp; &nbsp;showmessage('该程序未启动');<br>&nbsp; &nbsp; &nbsp;exit;<br>&nbsp; &nbsp; &nbsp;end<br>&nbsp; &nbsp; else begin<br>&nbsp; &nbsp; &nbsp;if EnableHook(hin) then<br>&nbsp; &nbsp; &nbsp; &nbsp;showmessage('启动钩子成功')<br>&nbsp; &nbsp; &nbsp;else showmessage('不成功');<br>&nbsp; &nbsp;end;<br><br>DLL中的钩子安装函数:<br><br>function EnableHook(hin:HINST):Boolean; stdcall; export;<br>begin<br>&nbsp; &nbsp; hHk := SetWindowsHookEx(WH_MOUSE,@HookProc,hin,0);<br>&nbsp; &nbsp; if hHk&lt;&gt;0 then <br>&nbsp; &nbsp; &nbsp; &nbsp;Result := True;<br>&nbsp; &nbsp; else result:=false;<br>&nbsp; end<br><br>不知道是什么原因每次都是不成功,不成功,请问是哪个地方的原因
 
干脆用WH_MOUSE_LL,全局的,哪个进程都跑不掉.
 
钩别的进程的消息只能用全局钩子,你这样在钩,别人的进程已经启动了,<br>你又没有Attach到别人的进程当然不行了。
 
TO thx1180:<br>&nbsp; 我还是不太明白,能说的详细点吗? 该怎么做呢
 
请看:<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1893013
 
后退
顶部