![]() |
TWebBrowser Sourcecode auslesen
Moin,
ich tüftel hier schon ne stunde herum um an den Sourcecode einer HTML Datei aus der ActiveX Komponenten TWebBrowser zu laden. Ich haber mir schon die MS Doku ![]() Das Problem ist, das ich eine XML Datei von einem Intranet/Internet Server herunterladen muss und wirklich an den Original XML Code kommen muss. Der XML Code selber wird durch eine HTTP Anfrage generiert. Nun ist der IE (TWebBrowser ) so clever und bereitet den XML Code für die Anzeige auf. Nur leider kann ich damit dann nichts mehr anfangen. Übel des ganzen Problems ist, das meine Anfrage an den Intranet Server nicht direkt gestellt wird, sondern durch Proxy, Ben-Hur und weiß der Geier was umgeleitet wird. In meinem Prototypen setze ich auf die Indy Komponente http auf, die allerdings damit große Probleme hat ( Anfrage geht an den Apache vom Intranet Server, kommt aber nicht zurück ). Da der IE auf den Maschinen allerdings 1a den XML Code vom Server läd, dachte ich das ich diesen eben mit ins Boot hole und darauf im Problemfall ausweichen kann. Ich muss jetzt nur noch an den Sourcecode der XML Datei kommen Ich habe im Netz nun allerhand gelesen, allerdings nur wie ich HTML in und nicht aus dem TWebBrowser lade. Hoffe mir kann jemand helfen, sonst muss ich meinen Parser umschreiben. Sven PS : Nutze Delphi 6 |
Re: TWebBrowser Sourcecode auslesen
servus sven,
ich hoffe ich habe dich richtig verstanden und denke das dir das weiterhelfen könnte: ![]() mfg Jonny |
Re: TWebBrowser Sourcecode auslesen
Ne das ist ja mein Problem.
Im Fall einer XML Datei wird das Teil intelligent und generiert einen ganz neuen HTMLCode. Sprich mit CSS Tags, Javascript usw. Wie ich an den komme habe ich auch schon raus bekommen, nur kann ich den gar nicht gebrauchen. Ich brauch das Ursprungsrohmaterial. Und ich habe das Gefühl, dass ich genau an diesen nicht heran komme. Dennoch danke für die Antwort. Sven |
Re: TWebBrowser Sourcecode auslesen
Glaube ich mache das nen Tick zu kompliziert.
URLDownloadToFile schaut schon einmal ganz nett aus. Weiß jemand ob der auf den IE aufsetzt ( laut MS mind. IE 3.0 ) und damit auch die Verbindungseinstellungen aus dem Internet Explorer benutzt ( Proxy etc? ) Sven |
Re: TWebBrowser Sourcecode auslesen
![]() |
Re: TWebBrowser Sourcecode auslesen
Ja, der setzt auf dem IE auf ... im Grunde läder der IE die Datei runter und gibt sie dir dann, außerdem wird (wenn vorhanden) auch gleich die Kopie aus der Browsercache.
|
Re: TWebBrowser Sourcecode auslesen
Sollte IdHTTP da nicht auch transparente Resultate liefern?
|
Re: TWebBrowser Sourcecode auslesen
Zitat:
Des weiteren ist mir heute aufgefallen das wohl die Indy Komponente nicht unter NT läuft. Zumindestens stürzen alle Programm beim starten ab die auf die Komponente aufsetzen. Mit URLDownloadToFile habe ich aber auch so meine Probleme. Irgendwie hängt die Funktion auf einigen Rechner komplett, so dass ich das Programm nur noch über den Task Manger beenden kann. Naja morgen mehr :-D |
Re: TWebBrowser Sourcecode auslesen
Versuch doch mal:
Delphi-Quellcode:
Frank :coder:
var
h_cachedInternet: HINTERNET; function GetRawHtml(var web_browser: TWebBrowser): String; var http_handle: HINTERNET; buffer: array [0..20] of Char; url: String; bytes_read: DWORD; begin url := web_browser.LocationURL; http_handle := InternetOpenUrl(h_cachedInternet, PChar(url),nil,0,INTERNET_FLAG_NO_UI,0); if http_handle = nil then result := '' else begin //-------------------------------------------------------------- // Retrieve the URL data. Hopefully this should be straight from // the cache because of how the internet connection was defined. //-------------------------------------------------------------- result := ''; repeat InternetReadFile(http_handle,@buffer,Length(buffer),bytes_read); result := result + Copy(buffer,1,bytes_read); until bytes_read =0; InternetCloseHandle(http_handle); end; end; initialization //-------------------- // Initialise WinInet. //-------------------- h_cachedInternet := InternetOpen(PChar(application.title), INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY,nil,nil, INTERNET_FLAG_FROM_CACHE); Zu finden bei ![]() |
Re: TWebBrowser Sourcecode auslesen
Ja schon gesehen in den Link oben. Ist aber blocking und somit nicht gerade das Gelbe vom Ei.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz