Hi Leute,
ich zeige euch heute etwas über die Webbrowser Programmierung.
Ich selbst programmiere meine Sachen nur über den Webbrowser, da ich mich daran gewöhnt habe und zu faul bin HttpWebRequest zu lernen. :s
Was ist das?
Die Webbrowser Programmierung erlaubt es euch Programme zu schreiben/programmieren, welche etwas im Internet machen z.B. einen Account Creator für eine Seite.
Voraussetzungen:
-Etwas Erfahrung in VB.net
-die Fähigkeit etwas mitzudenken
Der Anfang:
Das Auslesen eines Elements:
Damit ihr dem Webbrowser etwas befehlen könnt muss dieser Wissen was er machen muss. Bevor ich euch also zeige wie ihr eurem Webbrowser etwas anklicken oder ausfüllen lasst muss ich euch erstmal zeigen wie ihr ein Element auslest, damit ihr bestimmen könnt was ausgefüllt oder angeklickt werden soll.
Ich zeige euch dies an der Seite "www.arcor.de/register".
Ich benutze den Browser "Chrome", weil ich mit diesem Browser Elemente auslesen kann ohne irgendwelche Addons zu beschaffen.
Zuerst wählt ihr euer Element, in meinem Fall eine Textbox, und macht einen Recktsklick drauf und wählt "Element untersuchen".
[Only registered and activated users can see links. Click Here To Register...]
Wenn ihr das getan habt erscheint diese Box.
[Only registered and activated users can see links. Click Here To Register...]
Wie ihr sicher schon gemerkt habt ist ein Bereich makiert, dieser Bereich ist das komplette Element das ihr gerade untersucht.
Uns interessiert nur der Teil
Die ID könnt durch einen Doppelklick auswählen lassen und dann Copy&Paste machen.
[Only registered and activated users can see links. Click Here To Register...]
So, nun habt ihr schonmal die ID des Elements. Das gleiche geht auch mit Buttons, Checkboxen & sonstigem.
Die Vorbereitung
Ihr macht bei VB.net ein neues Projekt, der Name ist nicht von Bedeutung, wichtig ist nur das es sich um eine Windows Form handelt.
Ihr fügt einen Button, eine oder mehrere Textbox/en und einen Webbrowser hinzu.
Nun macht ihr Doppelklick auf den Button um den Code eintippen zu können.
Die Codes:
Es gibt 3 Codes die ihr fast jedes mal verwenden müsst, zumindest die ersten beiden.
Mit diesem Code könnt ihr etwas in eine Textbox einfügen lassen.
PHP Code:
Webbrowser1.Document.GetElementById("HierDieID").InnerText = "Text"
Das "Text" könnt ihr auch durch Textbox1.Text ersetzen, dann fügt der Webbrowser den Inhalt von Textbox1 in das Element ein.
Mit diesem Code klickt ihr ein Element an.
PHP Code:
Webbrowser1.Document.GetElementById("HierDieID").InvokeMember ("click")
Hier müsst ihr lediglich die Id einfügen und den rest so lassen.
Mit diesem Code könnt ihr etwas auswählen wenn es mehrere Optionen gibt.
Im Beispiel werdet ihr erkennen was ich meine. :)
Beispiel:
PHP Code:
Webbrowser1.Document.GetElementById("HierDieID").SetAttribut("Value/Option", "Was ausgewählt werden soll")
Das waren die 3 wichtigsten Codes in der Webbrowser Programmierung.
Den Webbrowser sagen er soll warten bis die Seite geladen ist:
Um dem Webbrowser zu sagen das er nach einem klick warten soll bis die Seite neu geladen ist, müsst ihr einen Code verwenden.
Dieser Code wurde nicht von mir erstellt sondern ist von irgendjemandem Public gemacht worden.
PHP Code:
#Region "Page Loading Functions"
Private Property pageready As Boolean = False
Private Sub WaitForPageLoad()
AddHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
While Not pageready
Application.DoEvents()
End While
pageready = False
End Sub
Private Sub PageWaiter(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
pageready = True
RemoveHandler WebBrowser1.DocumentCompleted, New WebBrowserDocumentCompletedEventHandler(AddressOf PageWaiter)
End If
End Sub
#End Region
Natürlich könnt ihr in nur verwenden wenn eine Seite geladen wird nachdem ihr z.B. auf "Registrierung abschließen" oder sonstiges klickt.
Warum das ganze?
Der Webbrowser wird versuchen alles auszufüllen, auch wenn die Seite noch nicht geladen ist, dadurch kommt es natürlich zu einem Fehler.
Den Code nicht in einen Sub einfügen, sondern sperat.
Um die Funktion zu benutzten einfach
PHP Code:
WaitForPageLoad()
benutzen.
Das war es im großen und ganzen schon.
Wie ihr seht ist es gar nicht so schwer, mit diesen kleinen Infos wärt ihr schon in der Lage einen Arcor Account Creator oder ähnliches zu machen, solange ihr mitdenkt. ;)
Ihr habt Fragen oder sonstiges?
Wenn ihr Fragen an mich habt könnt ihr mich gerne Kontakieren, ich helfe wo ich kann. ;)
Kontakt:
EPvP: Vegaaz
Skype: vegaaz.epvp
Außerdem schimmel ich des öfteren mal auch auf dem EPvP Teamspeak-Server rum.
ts.elitepvpers.com:1337
Ich hoffe dieses Tutorial hat euch geholfen.
Mfg,
Vegaaz