Einzelnen Beitrag anzeigen

Win32.API

Registriert seit: 23. Mai 2005
312 Beiträge
 
#4

Re: TWebbrowser/IdHTTP kompletten Quelltext auslesen (frames

  Alt 3. Dez 2006, 18:39
@RWarnecke
Danke fuer die Antwort, aber leider bringt das nicht das gewuenschte Ergebniss
Es speicher zwar 3 Frames dessen Inhalt aber nicht dem gewuenschten entspricht.

@marabu
Ich habe eine funktion von dir gefunden, danke schonmal dafuer :

Delphi-Quellcode:
function GetFrameDoc(doc: IHTMLDocument2; v: OleVariant): IHTMLDocument2;
var
  win: IHTMLWindow2;
  u: IUnknown;
  ec: IHTMLElementCollection;
begin
  u := doc.frames.item(v);
  if Assigned(u)
  and Succeeded(u.QueryInterface(IHTMLWindow2, win))
    then Result := win.Document
    else Result := nil;
end;

function DocToStrings(doc: IDispatch; s: TStrings): Boolean;
var
  ps: IPersistStreamInit;
  sa: IStream;
  ms: TStream;
begin
  if Succeeded(doc.QueryInterface(IPersistStreamInit, ps)) then
  begin
    ms := TMemoryStream.Create;
    sa := TStreamAdapter.Create(ms, soReference) as IStream;
    Result := Succeeded(ps.Save(sa, true));
    ms.Position := 0;
    s.LoadFromStream(ms);
    ms.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  doc: IHTMLDocument2;
  s: TStrings;
begin
  doc := GetFrameDoc(WebBrowser1.Document as IHTMLDocument2, 'MAIN');
  if Assigned(doc) then
  begin
    s := TStringList.Create;
    if DocToStrings(doc, s)
      then ShowMessage(s.Text)
      else ShowMessage('Rats!');
    s.Free;
  end;
end;
Leider funktionoiert dies auch nicht, liege ich richtig in der Annahme das MAIN der name des Frames ist?
Selbst mit dem Richtigen namen, bekomme ich immer die meldung:
Zitat:
---------------------------
Project2
---------------------------
Mitglied nicht gefunden.
---------------------------
OK
---------------------------


Es geht um diese Seite.

grüße win32
  Mit Zitat antworten Zitat