AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesbar?
Thema durchsuchen
Ansicht
Themen-Optionen

TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesbar?

Ein Thema von TStringlist · begonnen am 11. Dez 2006 · letzter Beitrag vom 11. Dez 2006
Antwort Antwort
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#1

TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesbar?

  Alt 11. Dez 2006, 10:19
nur mal so am Rande...

Es geht um diesen Code mittels dem (über das IPersistStreamInit) der HTML-Quellcode aus einer TWebBrowser-Komponente ausgelesen werden kann. Täusche ich mich, oder funktioniert der Code nach einer IE7-Installation tatsächlich nicht mehr? (Auf einem älteren PC mit IE6 lief er jedenfalls immer ohne Probleme).

Ist da diesbezüglich schon was bekannt? ...event. auch, wie der Code dann umzuschreiben wäre, und zwar möglichst so, dass er anschließend mit beiden Explorer-Versionen, dem IE6 u. dem IE7, funktioniert?

mfg
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb

  Alt 11. Dez 2006, 10:57
Hallo,

zuerst bin ich beim Lesen deines Beitrags leicht erschrocken, aber dann hat die Vernunft doch noch gesiegt: Ich müsste schon Rückmeldungen von meinen Kunden erhalten haben, wenn mein Code seit Umstellung auf IE7 nicht mehr funktionieren würde. Nur wegen eines kleinen Restes Paranoia habe ich meine eigenen Funktionen schnell noch mal getestet - und sie funktionieren noch. Der Code von Thomas verwendet die gleichen Schnittstellen und sollte auch weiterhin funktionieren. Eventuell solltest du mal auf einer anderen Maschine testen. Vielleicht ist deine Installation beschädigt?

Freundliche Grüße
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.196 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb

  Alt 11. Dez 2006, 11:02
Wann liest du den Code aus? ist wirklich schon das Dokument geladen under DOM aufgebaut?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb

  Alt 11. Dez 2006, 11:45
@marabu, das Programm läuft auf meinem alten PC ohne Problem. Habe noch ein weiteres XP und W2k auf dem jetzigen installiert, beide ebenfalls noch mit dem alten IE6, da läuft das Prog auch ohne Schwierigkeiten. Den IE7 hatte ich schon vor ca. 6 Wochen installiert. Letzte Woche hat sich mir dann eine nochmalige automatische Neu-Installation des IE7 quasi aufgedrängt und da mein bisheriger IE7 noch nicht die aller aller letzte Version war, habe ich das auch nochmal durchführen lassen, mit DeInstallation des bisherigen IE7... Vielleicht ist ja das diesbezügliche Procedere noch nicht ganz ausgereift und dabei was schiefgegangen(?)...


@Bernhard, das Auslesen über das DOM (bzw. IHTMLKocument2 u. document.body.innerHTML) funktioniert ja. Nur die Methode über das IPersistStreamInit nicht.

Sicherheitshalber habe ich natürlich auch dieses ReadyState vor dem Func-Aufruf erst noch mal befragt:

Delphi-Quellcode:
while WebBrowser1.ReadyState < ReadyState_Interactive do Application.ProcessMessages;
RichEdit3.Lines.Text := getBrowserHTML(WebBrowser1);
aber leider ohne Erfolg.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb

  Alt 11. Dez 2006, 19:16
Vielleicht möchtest du ja mal folgenden Code testen.
Ich verwende auch das Interface IPersistStreamInit; aber etwas anderst.
Man könnte übrigens auch das (ältere) Interface IPersistStream benützen; es hat (mit einer Ausnahme) die gleichen Methoden.
Delphi-Quellcode:
procedure Document_SetHTML(Document: IDispatch; const HTMLCode: string);
var
  ms: TStringStream;
begin
   if Assigned(Document) then
   begin
      ms := TStringStream.Create(HTMLCode);
      try
         ms.Seek(0, 0);
         OleCheck((Document as IPersistStreamInit).Load(TStreamAdapter.Create(ms)));
      finally
         ms.Free;
      end;
   end;
end;

function Document_GetHTML(Document: IDispatch):string;
var
   ms: TStringStream;
begin
   Result := '';
   if Assigned(Document) then
   begin
      ms := TStringStream.Create(Result);
      try
         OleCheck((Document as IPersistStreamInit).Save(TStreamAdapter.Create(ms),False));
         Result := ms.DataString;
      finally
         ms.Free;
      end;
   end;
end;



procedure WB_SetHTML(WebBrowser: TWebBrowser; const HTMLCode: string);
begin
   if not Assigned(WebBrowser.Document) then
      WebBrowser.Navigate('about:blank');
   while WebBrowser.ReadyState < READYSTATE_INTERACTIVE do
      Application.ProcessMessages;

   Document_SetHTML(WebBrowser.Document, HTMLCode);
end;

function WB_GetHTML(WebBrowser: TWebBrowser): string;
begin
   Result := Document_GetHTML(WebBrowser.Document);
end;
Andreas
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: TWebBrowser-htmlCode nach IE7-Install nicht mehr auslesb

  Alt 11. Dez 2006, 20:50
@shmia, thx für deinen Test-Code. Ich habe ihn erst mit IPersistStreamInit und danach nochmal mit nur dem IPersistStream ausprobiert, leider aber jedesmal nur eine Exception zurückbekommen. Zuerst eine der Klasse EOleSysError mit der Meldung 'Das System kann die angegebene Datei nicht finden' und danach eine der Klasse EIntfCastError mit der Meldung 'Interface nicht unterstützt'.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz