本帖最后由 fisher_older 于 2011-07-11 21:06:20 编辑

解决方案 »

  1.   

    你要用全局hook吧?监控输入的文字可以用exttextoutW,也可以SendMessage WM_GETTEXT
      

  2.   

    需要hook到在该控件中输入文字时调用的TextOutA,TextOutW,ExtTextOutA,ExtTextOutW,并把文字内容搞出来。
      

  3.   

    为什么要用TextOutA,TextOutW,ExtTextOutA,ExtTextOutW
    你hook WM_CHAR更好
      

  4.   

    是这样的,有个控件名称是Internet Explorer_Server,要获取里面的文字内容,WM_GETTEXT捕获不到,只能通过hook textout的方法了。不知道该怎么办。
      

  5.   

    http://download.csdn.net/source/3351392
    你可以看一下这个
      

  6.   

    完了,看不懂,这是hook什么api函数的?
      

  7.   

    如果必须hook textout该怎么做?谢谢!
      

  8.   

    那个可以hook任意api,你改一下就行
      

  9.   

    hook API应该是没有问题的。
    假设在hookdll文件中如下代码:
    Hook := TNtHookClass.Create('gdi32.dll', 'ExtTextOutW', @NewExtTextOutW);
    其中:
    function NewExtTextOutW(DC: HDC; X, Y: Integer; Options: Longint;
      Rect: PRect; Str: PWideChar; Count: Longint; Dx: PInteger): BOOL; stdcall;
    begin
      Hook.UnHook;
      Result:= TrueExtTextOutW(DC, X, Y, Options, Rect, Str, Count, Dx);
      Hook.Hook;
    end;这里的str就是我需要的字符串。请问如何在主程序中获取str?如果传递给一个全局变量是否可行?