Hallo @all!
Es ist ja möglich einen Button in einer anderen Windowsanwendung zu betätigen, aber ist es auch irgendwie möglich einen Button in einer Webseite zu betätigen?
Gruß
Brovning
Hallo Brovning,
wenn du das WebBrowser-Control statt dem IE verwendest, ist es relativ einfach: Button auf Website druecken?! . Sonst weiß ich keinen Weg.
herbivore
Ich würde sagen es kommt drauf an was man als Ergebnis haben möchte. Geht es um die Anzeige der neuen Seite in einem Fenster, ist das WebBrowser-Control besser geeignet. Wenn man die Daten haben möchte, ist es meiner Meinung nach besser mit einem WebClient oder HttpWebRequest den Post- oder Get-Aufruf selbst zu senden. Was anderes macht der Button auch nicht.
Nur der Vollständigkeit halber, das WebBrowser-Control ist der IE in einer COM-Komponente. Das gleiche gibt es auch für Mozilla.
das webbrowsercontrol nimmt dir ganz schön die arbeit weg! cookiehandling, https usw., hast du alles beim httprequest nicht, resp. du musst es selber programmieren!
Danke für euere Antworten, aber irgendwie kriege ich das nicht hin.
Wenn ich folgendes schreibe:
WebBrowser webbowser = new WebBrowser();
webbowser.Url = "http://www.gmx.de";
HtmlDocument htmldoc = ((WebBrowser)objSender).Document;
htmldoc.All ["gmx_id"].InnerText = "meineadresse@gmx.de";
htmldoc.All ["gmx_pw"].InnerText = "Peter";
htmldoc.All ["login"].InvokeMember("Click");
Was muss ich da noch inlcuden?
Er meldet immer:
The type or namespace name 'WebBrowser' could not be found (are you missing a using directive or an assembly reference?)
Gruß
Brovning
Guckst Du hier 😉
http://www.codetools.com/books/0764549146_8.asp?df=100&forumid=13574&exp=0&select=695864
Ist haargenau beschrieben. Geht auch noch etwas weiter ueber das hinaus, was Du benoetigst.
Du musst Dir durch das VisualStudio Wrapper fuer den AxWebbrowsers(ist ne ActiveX Komponente, wenn ich das richtig gelesen habe) erstellen lassen. Erst im VS2005 ist der Webbrowser direkt in der Toolbox zu finden (aber mit sehr beschnittenem Funktionsumfang).
Gruss, DaMoe
Hallo Pulpapex,
Wenn man die Daten haben möchte, ist es meiner Meinung nach besser mit einem WebClient oder HttpWebRequest den Post- oder Get-Aufruf selbst zu senden.
auch mit dem WebBrowser-Control bekommt man die Daten. Ich stimme .unreal voll zu. Das WebBrowser-Control hat die Mächtigkeit eines Browsers und kann mit all den Spezialitäten des realen Webs umgehen, die man bei HttpWebRequest erst mühsam nachprogrammieren muss.
Was anderes macht der Button auch nicht.
Hinter vielen Button liegt Javascript. Auch dass nimmt einem das WebBrowserControl ab. Auch muss man sich nicht darum kümmern, ob die Daten per POST, GET oder gar per JavaScript übertragen werden.
herbivore
Hmm... Ich habe mir jetzt das Beispiel für den eigenen Webbrowser zusammengebastelt, bekomme aber den vorher geposteten Codeteil immer noch nicht zum laufen.
Erkenne auch den Zusammenhangt nicht 100%, da es in dem Beispiel darum geht Seiten anzuzeigen, wobei ich eigentlich nur Formulare füllen möchte und diese Werte per Buttonklick abschicken.
Vielleicht sitze ich auch gerade auf der Leitung...
Gruß
Brovning
Hallo Brovning,
der Code von oben füllt ein Forumlar aus und schickt die Werte per Button-Klick ab!
Aber wenn du nicht schreibst, was nicht geht, werden wir dir kaum helfen können.
herbivore
bevor du die formulare füllen kannst, muss die seite da sein, damit das webbrowser control zugriff auf die formulare hat. wenn du die formularseite nicht aufrufen willst, dann geht das nur über die httpwebrequestklasse. allerdings wirst du einen grösseren programmieraufwand haben
gruss,
.unreal
Die Fehlermeldung sagt, entweder es fehlt eine using-Direktive oder die Assembly mit der gesuchten WebBrowser-Klasse wird nicht referenziert. In beiden Fällen kann der Type nicht aufgelöst werden.
Kann es sein, dass du mit .Net 1.1 programmierst? Da gibt es noch kein WebBrowser Windows-Control.
Ah, gut, jetzt habe ich den Zusammenhang. Wenn ich sehe, was er macht ist es auch nicht schlecht.
Der Fehler ist immer noch bei:
WebBrowser webbowser = new WebBrowser();
webbowser.Url = "http://www.gmx.de";
HtmlDocument htmldoc = ((WebBrowser)objSender).Document;
htmldoc.All ["gmx_id"].InnerText = "meineadresse@gmx.de";
htmldoc.All ["gmx_pw"].InnerText = "Peter";
htmldoc.All ["login"].InvokeMember("Click");
Er meldet:
The type or namespace name 'WebBrowser' could not be found (are you missing a using directive or an assembly reference?)
Ich bin nach der Anleitung für MyWebbrowser unter Codeproject vorgegangen und dieses Beispiel funktioniert.
Wo sehe ich die .NET-Version?
Gruß
Brovning
seinbar benutzst du VS 2003 --> FrameWork 1.1
ich meine den System.Windows.Forms.WebBrowser vom FrameWork 2.0
du brauchst vs 2005 für das framework 2.0 (beta ist kostenlos erhältlich)
gruss,
.unreal