Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Setienquelltext von TWebbrowser anzeigen...[gelöst] (https://www.delphipraxis.net/129202-setienquelltext-von-twebbrowser-anzeigen-%5Bgeloest%5D.html)

Corpsman 14. Feb 2009 12:09


Setienquelltext von TWebbrowser anzeigen...[gelöst]
 
Hossa,

Also das handeln von Internet sachen ist absolutes Neuland für mich.

Aber einges habe ich schon hinbekommen.

Doch zuerst was ich eigentlich will.

Ich hab hier ne URL in der ein Javascript steht.

Das wollte ich dann steuern, bzw bedienen.

Schnell war klar das das mittels

Delphi-Quellcode:
Function LoadHTML(URL: String): String;
Var
  IdHTTP1: tidhttp;
Begin
  IdHTTP1 := TIdHTTP.create(Nil);
  result := IdHTTP1.Get(URL);
  IdHTTP1.free;
End;
Nicht geht, da die Indy Komponente kein Javaskript kann.

Also hab ichs mal mit TWebBrowser probiert.

Und Wunderherlich, es öffnet sich ein fenster in dem ich ganz normal navigieren kann. Alles super.

In dem Fenster Tippe ich nen Code ein und drücke dann auf einen Button, das ich da drauf drücke kriege ich mittels

Delphi-Quellcode:
Procedure TForm2.WebBrowser1BeforeNavigate2(Sender: TObject;
  Const pDisp: IDispatch; Var URL, Flags, TargetFrameName, PostData,
  Headers: OleVariant; Var Cancel: WordBool);
Mit. Und alles wunderbar.

Doch das Problem ist das ich danach gerne wieder "unsichtbar" also ohne das Browserfensterchen weiterarbeiten würde.

Das geht aber nur wenn ich das Aktuelle Browserfenster auslesen kann. Und genau da ist mein Problem.

Laut diversen Posts und anderen Tipps und Tricks soll es mittels

Delphi-Quellcode:
Var

  aHTMLDoc: IHTMLDocument2;

  aHTMLBody: IHTMLElement;

  swHTMLText: WideString;

Begin
 
  If Not VarIsEmpty(WebBrowser1.Document) Then Begin

    aHTMLDoc := WebBrowser1.Document As IHTMlDocument2;

    aHTMLBody := aHTMLDoc.Get_body;

    swHTMLText := aHTMLBody.outerHTML;

    ShowMessage(swHTMLText);

  End;
Möglich sein.

Doch dazu mus man die Units "ActiveX" und "MSHTML_TLB" einbinden.

ActiveX hab ich in meinem D5Pro allerdings kennt er MSHTML_TLB nicht.

Und im I-net finde ich keinen Download zu dieser Unit.

Mus man nun unter D5 das ganz anders lösen, oder gibts die unit doch irgenwo zum DL ?

Corpsman 14. Feb 2009 13:04

Re: Setienquelltext von TWebbrowser anzeigen...
 
Ahh

das mus man auch wissen die Unit MSHTML_TLB.pas kann man selbst erstellen :


Komponente -> ActiveX importieren

Microsoft HTML Object Library

anwählen

Unit Anlegen Klicken

Dann gehts :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:36 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