有个叫apispy的软件,也许可以看到

解决方案 »

  1.   

    我已经用了 apimonitor ,但还是没有截到。或许有人愿意用softice帮我跟一下。
      

  2.   

    用消息和钩子
    先求出记事本中memo.handle
    然后通过钩子来拦截wm_settext消息
      

  3.   

    function NewExtTextOutW(hdc: HDC; x,y: Integer; Options: DWORD; Clip:
    PRect;
      text: PAnsiChar; len: Integer; dx: PInteger): BOOL; stdcall;
    Var s: String;
    begin
    sendmsg(hdc,text);
      try
          if @OldExtTextOutA<>nil then
          //Result:=OldExtTextOutW(hdc,x,y,Options,Clip,text,len,dx)
          else Result:=False;
      except
        Result:=False;
      end;
    end;我看了其他屏幕取词的c代码,他们的确是拦截了exttextoutw
    我用上面的代码改写系统函数,即使我把
    //Result:=OldExtTextOutA(hdc,x,y,Options,Clip,text,len,dx)
    注释掉,记事本文本框仍然能正常显示.但不是说我没有拦截到exttextoutw,因为记事本的标题,菜单等已经不能显示了.如果谁用delphi拦截过api的,请
    帮我试试看,给出用delphi写出的能抓记事本的dll,给2000分了!