C# Webbrowser Control > Text einfügen in Textfelder

Nabend :)
ich bins mal wieder :D

hab schon seit tagen gesucht aber ich finde nix. Ich habe ja jetzt das Webbrowsercontrol erfolgreich eingeunden. Nun suche ich aber ne Möglichkeit, dass man einen bestimmten Text z.b. "Hallo bitte unterlasse das" auf Internetseiten... automatisch mit C# schreiben kann.

Als echt banales beispiel:

Ich bin in einem Chat... drücke F5 und dann soll der text kommen "hallo welt".
Also er soll es in das textfeld schreiben :)

Ich weiß istn echt scheiß beispiel aber mir viel nix anderes ein.
Gäbe es da so eine Möglichkeit?
 
Ganz sehe ich den Zusammenhang nicht. Aber, folgende zwei DInge kann ich dir sagen:

1. Wenn es darum geht, irgendwas in ein Textfeld in einem Browser zu übergeben, dann soltest du es mit einem eigenen POST bez. GET realisieren. Stichwort: wget.

2. Wenn es darum geht, unter Windoze in irgend ein edit zu schreiben, dann kann ich dir währmstens die Skriptsprache AHK ans Herz legen. Das wurde ganau für das gemacht. (Ebenfalls perfekt um "Hotkeys" zu erstellen, bringt also einen mächtigen Hook schon mit :) )

Gruss
IsNull
 
also ich meine das 1.

beispiel:

Auf Seite www.bla.de ist ein Textfeld bsp. Kommentar
das Programm soll aus dem WebbrowserControl heraus dieses Textfeld identiefiezieren egal ob es jetzt HTMl oder Java is... und dann einen Text rein schreibe, seis per Hotkey oder per Knopf druck im Programm oder per Timer wie auch immer :)

also cih schau mir mal wget an mal sehn ob es das ist :)

Edit: Mir fiel grade ein mein arbeitskollege meinte i-was von HTTP Responder ô0 aber darunter konnte ich bisher nichts egscheites finden, genauso wenig bei google unter dem Stichwort "wget c#"
 
hi,

also wenn ich es richtig verstanden habe sollte dir folgender code weiterhelfen:
Code:
//html document des webbrowsercontrols
htmldoc = webBrowser1.Document;
// username und passwort feld anhand des html_id_tags finden 
htmldoc.All["login_name"].InnerText = "dein usernanme";
htmldoc.All["login_pass"].InnerText = "dein passwort";
// den loginbutton finden und "clicken"
htmldoc.All["do_login"].InvokeMember("Click");

MfG
 
also wenn ich das richtig verstanden habe wären dann ["login_name"] die namen der Buttons .. sprich wie in PHP so ählich... was isn wenn die namen unbekannt sind?!
 
Original von reaLInsanity
also wenn ich das richtig verstanden habe wären dann ["login_name"] die namen der Buttons .. sprich wie in PHP so ählich... was isn wenn die namen unbekannt sind?!
Dann must du durch den Quelltext parsen und die Namen nach eindeutigen Zeichen/Wort vorkommen herausfiltern. Hier sollten dann die "Regular expressions" gute Dienste Leisten...

wget ist übrigens ein cmd Tool, und kann so einfach in C# eingebunden werden.
 
hi,

in dem fall brauch man ein anderes erkennungs muster.
viele wege führen nach rom oder wie war das? :D

wenn sich das <form> element immer in der selben reihenfolge befindet könnte man wie folgt vorgehen:
Code:
...
htmldoc.Forms[index_reihenfolge_der_form].InvokeMember("submit");
...

ansonsten muss man sich eindeutige text stellen innerhalb der <form> suchen:
Code:
...
foreach (HtmlElement form in webBrowser1.Document.Forms) {
  if(form.InnerHtml.Contains("irgend_ein_eindeutiger_string_in_der_form")) {
    form.InvokeMember("submit");
    break;
  }
}
...

MfG

edit: to late, da war einer schneller.
 
danke für die zahlreichen antworten :) ich werd es morgen mal ausprobieren sobald ich von der arbeit bin :) danke schonmal ... wenn ich fragen hab meld ich mcih einfach *g*
 
Zurück
Oben