Laden...

Button im IExplorer,... betätigen

Erstellt von Brovning vor 18 Jahren Letzter Beitrag vor 18 Jahren 2.480 Views
B
Brovning Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren
Button im IExplorer,... betätigen

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

P
939 Beiträge seit 2003
vor 18 Jahren

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.

Mozilla ActiveX Control

563 Beiträge seit 2004
vor 18 Jahren

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!

B
Brovning Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

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

D
128 Beiträge seit 2005
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

B
Brovning Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

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

49.485 Beiträge seit 2005
vor 18 Jahren

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

563 Beiträge seit 2004
vor 18 Jahren

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

P
939 Beiträge seit 2003
vor 18 Jahren

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.

Compiler Error CS0246

Kann es sein, dass du mit .Net 1.1 programmierst? Da gibt es noch kein WebBrowser Windows-Control.

B
Brovning Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

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

563 Beiträge seit 2004
vor 18 Jahren

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

B
Brovning Themenstarter:in
152 Beiträge seit 2005
vor 18 Jahren

Ok, danke!
Ich melde mich wieder... 😁

Gruß

Brovning