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 ?