VB Webbrowser Eingabe senden und Antwort auslesen
Hallo,
Ich beschäftige mich Zz in VB6 mit Dem "WebbRowser Objekt"
Nun versuche ich eine URL zu öffnen, (das ist kein Problem), dann in einer TextBox einen namen einzugeben, welcher in eine Eingabebox auf der internet seite geschrieben werden soll, und dann bestätigt werden soll, sodass ich am Ende die ausgabe der Website in einer Variablen speichern kann, und Via msgbox ausgeben kann.
Könnte mir vllt. Jemand dazu Tipps geben?
Mfg,
HexFlex
Ich beschäftige mich Zz in VB6 mit Dem "WebbRowser Objekt"
Nun versuche ich eine URL zu öffnen, (das ist kein Problem), dann in einer TextBox einen namen einzugeben, welcher in eine Eingabebox auf der internet seite geschrieben werden soll, und dann bestätigt werden soll, sodass ich am Ende die ausgabe der Website in einer Variablen speichern kann, und Via msgbox ausgeben kann.
Könnte mir vllt. Jemand dazu Tipps geben?
Mfg,
HexFlex
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 56048
Url: https://administrator.de/contentid/56048
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
1 Kommentar
Hi,
mit dem WebBrowser-Control geht das nicht. Es ist ja eine kleine Instanz des IE in deiner Anwendung, auf den du nicht viel Einfluss nehmen kannst.
Die alternative ist das WinSock-Control.
Möglichkeit 1: Du sendest über das Winsock eine HTTP-Request an den Server der Seite, bekommst den HTML-Code, müsstest dann die Seite aus dem Code generieren (Arbeit³...), beim anklicken musst du dann wieder reagieren und eine HTTP-GET oder HTTP-POST senden und bekommst dann den Code der neuen Seite (da steht ja das Ergebnis drin, was du suchst)
Möglichkeit 2: (leichter, aber evtl. geht's bei dir nciht): Du guckst dir den Code der Seite an (daher ist dieses Ergebnis Seitengebunden), solche Textboxes sind immer in Formularen auf der Seite (HTML-Code <form>) und dann steht da die Method, diese ist Post oder Get.
Bei Get musst du für die Ergebnisseite als Anforderung über das WinSock-Control
"
Bei Post wirds schwerer, da der Textboxinhalt nicht dirkt in die Adresse eingebunden wird: "
Um nun also die Ergebnisseite so direkt anzufordern, musst du zuerst das WinSock zum Server connecten und dann eine dieser Requests senden. In der Data_Arrival kommt dann u.a. der HTML-Quellcode der Seite zurück, welchen du dann ja durchforsten kannst.
ABER: Das ist halt Seitengebunden, da die Textfelder auf den verschiedenen Seiten ja immer anders heißen, heir ein Beispiel im HTML-Code: "
Sorry, das das jetzt so verwirrend aussieht und auch ist, aber am besten ist du sagst erstmal was du genau machen willst, dann sieht man schonmal besser, wie's gehen kann...
mit dem WebBrowser-Control geht das nicht. Es ist ja eine kleine Instanz des IE in deiner Anwendung, auf den du nicht viel Einfluss nehmen kannst.
Die alternative ist das WinSock-Control.
Möglichkeit 1: Du sendest über das Winsock eine HTTP-Request an den Server der Seite, bekommst den HTML-Code, müsstest dann die Seite aus dem Code generieren (Arbeit³...), beim anklicken musst du dann wieder reagieren und eine HTTP-GET oder HTTP-POST senden und bekommst dann den Code der neuen Seite (da steht ja das Ergebnis drin, was du suchst)
Möglichkeit 2: (leichter, aber evtl. geht's bei dir nciht): Du guckst dir den Code der Seite an (daher ist dieses Ergebnis Seitengebunden), solche Textboxes sind immer in Formularen auf der Seite (HTML-Code <form>) und dann steht da die Method, diese ist Post oder Get.
Bei Get musst du für die Ergebnisseite als Anforderung über das WinSock-Control
"
GET www.dieseite.de/xxx.html?textboxname=textboxwert HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, */*Referer: http://www.dieseite.de/Accept-Language: deUA-CPU: x86Accept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; FDM; .NET CLR 3.0.04506.30)Host: www.diwseite.deConnection: Keep-Alive
" senden, evtl. kann man den ein oder anderen Teil auch rauslassen wichtig ist v.a. der Teil von GET bis Accept, denn hier wird der Textboxonhalt gesendet.Bei Post wirds schwerer, da der Textboxinhalt nicht dirkt in die Adresse eingebunden wird: "
POST / HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-xbap, application/x-ms-application, application/x-shockwave-flash, */*Referer: http://www.dieseite.de/Accept-Language: deContent-Type: application/x-www-form-urlencodedUA-CPU: x86Accept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; FDM; .NET CLR 3.0.04506.30)Host: www.dieseite.deContent-Length: Länge des Strings unten, in diesem Fall also: 25Connection: Keep-AliveCache-Control: no-cachetextboxname=textboxinhalt
" hier geht's vorallem um die letzte Zeile und der Eigenschaft Content-Length.Um nun also die Ergebnisseite so direkt anzufordern, musst du zuerst das WinSock zum Server connecten und dann eine dieser Requests senden. In der Data_Arrival kommt dann u.a. der HTML-Quellcode der Seite zurück, welchen du dann ja durchforsten kannst.
ABER: Das ist halt Seitengebunden, da die Textfelder auf den verschiedenen Seiten ja immer anders heißen, heir ein Beispiel im HTML-Code: "
<form method=""get""><input name="textboxname" "type="text"/></form>
"Sorry, das das jetzt so verwirrend aussieht und auch ist, aber am besten ist du sagst erstmal was du genau machen willst, dann sieht man schonmal besser, wie's gehen kann...