关于钩子方面的问题 ( 积分: 200 )

  • 主题发起人 主题发起人 ldk0110
  • 开始时间 开始时间
L

ldk0110

Unregistered / Unconfirmed
GUEST, unregistred user!
现有一应用程序A,我需要写一进程,将应用程序A的界面上添加一按钮,并且在该按钮的单击事件中关闭该应用程序A,请问各位大哥大姐,该程序应如何实现?小弟很菜,如有源码,不胜感激!
 
晕,昨没人呢?
 
这个问题就是在一个EXE文件界面上添加一按钮,然后给这个按钮的单击事件中添加一段代码啊
 
必须用钩子
 
我知道啊,我也研究了,可是俺很笨
 
大神啊,高手啊!圣母玛利亚啊!来吧!让暴风雨来吧!都来吧!
 
这其实是一个外壳钩子方面的,可惜我对此不太熟,唉!书到用时方恨少啊
 
懂破解程序就很容易添加,也不&nbsp;存在/需要&nbsp;什么源码,直接写就是了.<br>不懂的话告诉你怎么做也没用。
 
有没有这方面的例子?望白河愁先生指教!
 
以QQ登录窗口为例<br><br><br><br>implementation<br>var<br>&nbsp;&nbsp;OldBtnProc:&nbsp;Pointer;<br>&nbsp;&nbsp;QQWindow,BtnExit:&nbsp;HWND;<br>{$R&nbsp;*.dfm}<br>&nbsp;function&nbsp;ButtonProc(hwnd:&nbsp;HWND;&nbsp;Msg:&nbsp;UINT;wparam:&nbsp;WPARAM;lparam:&nbsp;LPARAM):LRESULT;Stdcall;<br>&nbsp;begin<br>&nbsp;&nbsp;&nbsp;if&nbsp;Msg&nbsp;=&nbsp;WM_LBUTTONDOWN&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SendMessage(QQWindow,WM_SYSCOMMAND,SC_CLOSE,0);<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Result:=&nbsp;0;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;end<br>&nbsp;&nbsp;&nbsp;else<br>&nbsp;&nbsp;&nbsp;Result:=&nbsp;CallWindowProc(OldBtnProc,hwnd,Msg,wparam,lparam);<br>&nbsp;end;<br>procedure&nbsp;TForm1.Button1Click(Sender:&nbsp;TObject);<br><br>begin<br>&nbsp;&nbsp;QQWindow:=&nbsp;FindWindow(nil,'QQ用户登录');<br>&nbsp;&nbsp;if&nbsp;QQWindow&nbsp;=&nbsp;0&nbsp;then&nbsp;exit;<br>&nbsp;&nbsp;BtnExit:=&nbsp;CreateWindow('Button','退出',WS_VISIBLE&nbsp;&nbsp;or&nbsp;WS_CHILD&nbsp;or&nbsp;BS_PUSHBUTTON,10,10,80,50,<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;QQWindow,1,GetWindowLong(QQWindow,GWL_HINSTANCE),nil);<br>&nbsp;&nbsp;Windows.SetParent(BtnExit,QQWindow);<br>&nbsp;&nbsp;OldBtnProc:=&nbsp;Pointer(SetWindowLong(BtnExit,GWL_WNDPROC,Longint(@ButtonProc)));<br>end;
 
晕&nbsp;&nbsp;必须用钩子&nbsp;我用的反问的意思&nbsp;&nbsp;就是问你必须用钩子来实现吗?
 
接受答案了.
 
后退
顶部