急寻-钩子问题(200分)

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

suhang999

Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi编写了一个服务程序,在服务程序中设置了钩子如下:<br>setwindowshookex(getmessage,〔处理函数〕,hinstance,0);<br>我想通过其它应用程序发送消息让钩子截获此消息并处理此消息,发送消息用:<br>postmessage(0,wm_user,10,20);但结果是钩子并没有截获此消息,这是为何,请高手指点一二,指明者一定送高分。
 
难道没有人知道
 
看看这里对你有无帮助<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1648910
 
有没有把钩子放到DLL中啊
 
钩子是一定要放到DLL中的因为要钩别人的程序,只有DLL能注入别的进程空间中<br>
 
这真是一个很难的问题吗?
 
真的没有高手吗?<br>
 
我记下你的名字了<br>以后绝不回答你的任何问题!!!!
 
因为你没有回答对,所以我不能给分,我问的是在服务程序中挂钩子,用DLL的方法我试过了,我在服务中静态调用,但同样钩子没有截获消息。
 
我没有代码,我不清楚你的问题出现在那儿,给一个小段代码吧。但愿对你有用<br>声明:<br>const<br>&nbsp; WM_CAPWORD &nbsp; &nbsp;= WM_USER + 111;<br>&nbsp; function GetMsgProc(nCode, wparam, lparam: integer):integer;stdcall;<br>实现:<br>SetWindowsHookEx(WH_GETMESSAGE, @GetMsgProc, hInstance, 0);<br><br>function GetMsgProc(nCode, wparam, lparam: integer):integer;stdcall;<br>var<br>&nbsp; pcwp: PMSG;<br>begin<br>&nbsp; result := CallNextHookEx(p.GetMsg_Hook, nCode, wparam, lparam);<br>&nbsp; if ncode&gt;=0 then<br>&nbsp; begin<br>&nbsp; &nbsp; pcwp := PMSG(lparam); &nbsp;//得到当前组合按键<br>&nbsp; &nbsp; if (pcwp.message = WM_KEYDOWN) and (pcwp.wParam = VK_SHIFT) then<br>&nbsp; &nbsp; &nbsp; &nbsp;//<br>&nbsp; &nbsp; if (pcwp.message = WM_KEYDOWN) and (pcwp.wparam = VK_CONTROL) then<br>&nbsp; &nbsp; &nbsp; //<br>&nbsp; &nbsp; if (pcwp.message = WM_KEYUP) and (pcwp.wParam = VK_SHIFT) then<br>&nbsp; &nbsp; &nbsp; //<br>&nbsp; &nbsp; if (pcwp.message = WM_KEYUP) and (pcwp.wParam = VK_CONTROL) then<br>&nbsp; &nbsp; &nbsp; //<br>&nbsp; &nbsp; if (pcwp.message = WM_MBUTTONDOWN) then<br>&nbsp; &nbsp; &nbsp; //<br><br>&nbsp; &nbsp; if (pcwp.message = WM_MBUTTONUP) then<br>&nbsp; &nbsp; &nbsp; //<br>&nbsp; end;<br>end;<br><br>
 
后退
顶部