消息拦截,hook。请看问题:
http://www.csdn.net/expert/topic/115/115353.shtm

解决方案 »

  1.   

    library cmphk;  
    uses  
    windows, messages, dialogs;//我喜欢用showmessage来测试
    var 
    hookhandler:hhook;
    ah:hwnd;//ah 是dll中的全程变量
      这是钩子函数:
    function  hookhandler(iCode:integer;wParam,lParam:longint):longint;stdcall; 
    begin 
    if iCode <0 then 
    hookhandler:=callnexthookex(hkhnadle,icode,wparam,lparam);if iCode \>=0 then
    if PCWPSTRUCT(lParam)^.message=WM_CREATE then 
      if PCREATESTRUCT(CWPSTRUCT(lParam)^.lparam)^.lpszName='test1' then 
        begin
          ah:=CWPSTRUCT(lParam)^.hwnd; 
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
        
      // 这里的ah当然是个在这个dll中定义的hwnd类型,我测试过,在这里得到了
      //窗口的句柄。
      //但是,但是好象不能正确的传递出dll。为什么? 
      //  该如何做?    
    我的程序不是很复杂,除了在这里被赋值外,别的地方只是读.不信你自己可以试试,比如:
     showmessage(inttostr(ah));你可以看到得到的hwnd的值,然后,在主程序(就是调用这个dll的程序)中用showmessage(inttostr(findwindow(nil,'test1'))),两个值绝对是一样的.
     好了,在这个dll中另一个函数取这个dll中的全程变量ah.见function gethandle.  ·
      ·
      ·end; function gethandle:hwnd;stdcall;
    begin
    if ah<>0 then result:=ah
    else result:=-1;  //这个函数总是得到结果-1,是什么问题?
    (其实hwnd这么赋值没什么问题的。系统会把它解释成一个很大的数....)
    在主程序中,我们发现ah根本就没有返回先前得到的hwnd,事实上,ah的值是0谢谢您的回答但是我看起来还是有点吃力,因为我是刚从vb转过来学delphi的,可以话,您可以打出一个完整的dll和调用它的方法么??
    恩。。我们以oicq为例子,想每当它产生“发送消息”这个窗口的时候,我们获取,行么??对不起,我真的看了很久,自己也试了几次了,依旧连运行都通不过看在186分不少的面子上,请再帮帮我这个菜鸟吧
    btw,有空来我主页玩,www.meetbeauty.het
    再次谢谢您!!
      

  2.   

    补充一句,可以留下oicq么??我的oicq是354887,请联系,谢谢~!
      

  3.   

    为什么不自己搜索一下。打字很费力的。再说,写dll和钩子是常用的手段,非得学习的。
      

  4.   

    做一个ShellProc的Hook,下面给一小段代码,function ShellProcHookHandler(iCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall; export;
    begin
      Result := 0;
      If iCode < 0 Then
      begin
        Result := CallNextHookEx(hNextHookProc, iCode, wParam, lParam);
        Exit;
      end;
      if iCode = HSHELL_WINDOWCREATED then
      begin 
        //wParam 就是被创建窗口的句柄。
      end;
    end;
      

  5.   

    啦啦啦这个问题暂时休息
    http://myhome.humen.com/meetbeauty/meetbeauty.exe 来这里看我做的电子书吧是情感散文类的529k,用瑞星12.35杀毒了的,绝对精彩哦!!
      

  6.   

    新消息,电子书又新做了chm版本的,最近病毒流行,所以下载exe大家还是有点恐惧吧
    http://myhome.humen.com/meetbeauty/meetbeauty.chm  200多k
    本书的exe版本已经被《e类出版物》收录可以去看看哦