如何让别人的程序里某个按钮被点击之后再执行我们的一段程序?怎么样用钩子来解决这个问题?给个建议吧,谢谢

解决方案 »

  1.   

    用 createprocess可以吗?shellexcute ?
      

  2.   

    如果别人的程序只是Exe文件,必须使用钩子了吧,获得别人程序的窗口,获得点击的控件的句柄,挂接钩子程序!
      

  3.   

    先用钩子将你的DLL注入目标进程,然后子类化目标窗口(SetWindowLong),处理按钮的消息即可
      

  4.   

    注入你的DLL,再挂消息钩子,接下来搞定
      

  5.   

    子类化
    wpOrigMainProc=(WNDPROC)SetWindowLong(hForm,GWL_WNDPROC,(LONG)MainSubclassProc);MainSubclassProc是你的新的窗口处理过程,处理按钮消息用的
    wpOrigMainProc是返回的原来的窗口处理过程,保存到变量
    当你的窗口过程MainSubclassProc执行完后,用
    CallWindowProc(wpOrigMainProc,hwnd,uMsg,wParam,lParam);
    在调用原先的处理过程即可
      

  6.   

    将你的代码插入目标进程,HOOK目标窗口的窗口过程。
      

  7.   

    tabris17(四不象):
    好像你子类化之后,是先执行我们自己的处理过程然后再执行原来的处理过程,我是想把顺序反过来的呢?
      

  8.   

    假如我现在已经能把DLL注入了目标程序,我应该用局部钩子吧?
      

  9.   

    ==============================================
    tabris17(四不象):
    好像你子类化之后,是先执行我们自己的处理过程然后再执行原来的处理过程,我是想把顺序反过来的呢?
    ==============================================汗,没看到这就没办法了,因为原来的处理过程已经返回了
      

  10.   

    用dll注入,然后挂上钩子处理
      

  11.   

    用Windows局部消息钩子,Hook所有的消息,可以分析出某个按钮被按下的消息。
      

  12.   

    http://blog.csdn.net/wwwxuhong/archive/2004/09/22/113104.aspx