Mega Code Archive

 
Categories / Delphi / LAN Web TCP
 

How to get the HTML Code out of all Internet Explorer Instances

Title: How to get the HTML Code out of all Internet Explorer Instances uses MSHTML_TLB, ActiveX; function GetHTMLCode(WB: IWebbrowser2; ACode: TStrings): Boolean; var ps: IPersistStreamInit; s: string; ss: TStringStream; sa: IStream; begin ps := WB.document as IPersistStreamInit; s := ''; ss := TStringStream.Create(s); try sa:= TStreamAdapter.Create(ss, soReference) as IStream; Result := Succeeded(ps.Save(sa, Bool(True))); if Result then ACode.Add(ss.Datastring); finally ss.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); var ShellWindow: IShellWindows; WB: IWebbrowser2; spDisp: IDispatch; IDoc1: IHTMLDocument2; k: Integer; begin ShellWindow := CoShellWindows.Create; // get the running instance of Internet Explorer for k := 0 to ShellWindow.Count do begin spDisp := ShellWindow.Item(k); if spDisp = nil then Continue; // QueryInterface determines if an interface can be used with an object spDisp.QueryInterface(iWebBrowser2, WB); if WB nil then begin WB.Document.QueryInterface(IHTMLDocument2, iDoc1); if iDoc1 nil then begin WB := ShellWindow.Item(k) as IWebbrowser2; begin // Add HTML Code to Memo Memo1.Lines.Add('****************************************'); Memo1.Lines.Add(WB.LocationURL); Memo1.Lines.Add('****************************************'); GetHTMLCode(WB, Memo1.Lines); end; end; end; end; end;