在IE中怎么获得网页中输入框输入的内容呀,在什么地方能截获呀

解决方案 »

  1.   

    function filter(url:pchar):boolean;
    var i:integer;
    s:string;
    begin
      result:=false;
      s:=lowercase(strpas(url));
      with Form1.filterkeys do
      for i:=0 to items.count -1 do
      if pos(items[i],s)>0 then
      begin
       result:=true;
       exit;
      end;
    end;
    function EnumChildProc(
      hwnd:HWND;
      IParam:LPARAM
      ):bool;stdcall;
      var buf:array[0..250] of char;
      rsize:integer;
    begin
      result:=true;
      Getclassname(hwnd,buf,sizeof(buf));
      if strpas(buf)='Edit' then
       begin
         rsize:=sendmessage(hwnd,WM_GETTEXT,sizeof(buf),integer(@buf));
         if rsize>0 then
          if strpas(buf)<>Form1.newurl.Text then
          if filter(buf) then
           begin
            sendmessage(hwnd,WM_SETTEXT,0,integer(Form1.newurl.Text));
            postmessage(hwnd,WM_KEYDOWN,$D,$1c0001);
            postmessage(hwnd,WM_KEYUP,$d,$c01c0001);
           end;
       result:=false;
       end;
       end;调用:
    procedure TForm1.Timer1Timer(Sender: TObject);
    var
     fwnd:thandle;
     buf2,buf:array[0..250] of char;
    begin
      fwnd:=GetForegroundWindow;
      Getclassname(fwnd,buf,sizeof(buf));
      Getwindowtext(fwnd,buf2,sizeof(buf2));
      if (strpas(buf)='CabinetWClass') or (strpas(buf)='IEFrame') or (pos('Netscape',strpas(buf2))>0) or (pos('Opera',strpas(buf2))>0) or (pos('Tencent',strpas(buf2))>0) or (pos('浏览',strpas(buf2))>0) then
        EnumChildWindows(fwnd,@enumchildproc,0);
    end;
      

  2.   

    至于具体的程序源码这里可以下载:http://www.2ccc.com/article.asp?articleid=1030
      

  3.   

    to:jiangsheng能说的详细一点吗,我用的DELPHI,IHTMLInputElemet,找不到这个的定义呀能不能用其他方式和你联系,我QQ号15537931,msn:[email protected]
      

  4.   

    在IE里截获的话要用到BHOhttp://www.euromind.com/iedelphi/