我在编程中用了一个Webbrowser控件,需要读取Webbrowser控件浏览器窗口中的内容,存在变量中。
    我用了两个方法
一个是
    Webbrowser.ExecWB(cmdID_Selectall,1,emptyparam,emptyparam);
    Webbrowser.Execwb(cmdid_copy,1,emptyparam,emptyparam);    
    但报错。
    大家看看参数有错吗?(有人说是Ole对象没注册)
另一个是
    用Ihtmldocument2(Webbrowser).body属性,然而在运行后就是报读内存错误(就是没治的那种)还是没法取得浏览器的内容。     哪位能给我一个正确的例子呢?(浏览器中只有文本)
     感谢了

解决方案 »

  1.   

    WebBrowser.OleObject.Document.OuterText如果要用IHTMLDocument2的话IHTMLDocument2(Webbrowser.Document).Body.OuterText
      

  2.   

    可是我用了
    Webbrowser1.navigate('xxx.htm')
    str1:=webbrowser1.OleObject.Document.outertext;后
    报错一样:Read of Address 00000000 ..晕了
      

  3.   

    procedure TForm1.Button1Click(Sender:TObject);
    var
     Url:OleVariant;
    begin
     Url:='http://www.xxx.htm';
     WebBrowser1.Navigate(Url);
    end;
    procedure TForm.OnWebBrowserDocumentComplete(Sender: TObject;const pDisp: IDispatch;var URL: OleVariant);
    var
      HtmlDocument:IHtmlDocument2;
    begin
      HtmlDocument:=WebBrowser2.Document as IHtmlDocument2;
      if HtmlDocument<>nil then StrBuff:=HtmlDocument.OuterText;
    end;
    procedure TForm1.OnCreate(Sender:TObject);
    begin
      WebBrowser1.OnWebBrowserDocumentComplete:=OnWebBrowserDocumentComplete;
    end;