Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Kangaroo.
Visual Basic-Quellcode
PrivateSub Links_holen()
Dim link As HtmlElement, value AsString
Dim links As HtmlElementCollection = WebBrowser1.Document.Links
ForEach link In links
value = link.GetAttribute("href")
If value.Contains("change_please") Then link.InvokeMember("click")
Next
EndSub
Irgendwie passiert da garnix
Ich bin einfach zu blöd für VB
Dann warte mit dem anklicken des neuen Links, bis er den anderen sauber annavigiert hat:
Setze eine Variable oben in die Forms:
VB.NET-Quellcode
Private _isBusy asBoolean
Im Webbrowser.DocumentCompleted Event setzt Du
VB.NET-Quellcode
_isBusy=false
Und dazu naoch eine Methode:
VB.NET-Quellcode
PublicSharedSub waitComplete()
While _isBusy
Application.DoEvents()
EndWhile
EndSub
Und wartest nach dem InvokeMember mit dem Aufruf waitComplete()
VB.NET-Quellcode
PrivateSub Links_holen()
Dim link As HtmlElement, value AsString
dim doc as HTMLCollection=WebBrowser1.Document
Dim links As HtmlElementCollection = doc.Links
ForEach link In links
value = link.GetAttribute("href")
_isBusy=true
If value.Contains("change_please") Then link.InvokeMember("click")
waitComplete()
Next
EndSub
Hoffe so aus dem Kopf ist das auch richtig
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()
Ok, also er bringt zwar keinen Fehler, aber dafür macht er auch nix
Hier mal mein kompletter Code: (meine "einfallsreichen" Kommentare einfach ignorieren )
Visual Basic-Quellcode
Public Class Form1
Private _isBusy AsBoolean
PrivateSub Form1_Load(ByVal sender AsObject, ByVal e As System.EventArgs) Handles Me.Load
PrivateSub WebBrowser1_DocumentCompleted(ByVal sender AsObject, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
_isBusy =False
EndSub
PrivateSub WebBrowser1_ProgressChanged(ByVal sender AsObject, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
Dim links As HtmlElementCollection = WebBrowser1.Document.Links
ForEach link In links
value = link.GetAttribute("href")
_isBusy =True
If value.Contains("change_please") Then link.InvokeMember("click")
waitComplete()
Next
EndSub
PrivateSub waitComplete()
While _isBusy
Application.DoEvents()
EndWhile
EndSub
End Class
Vielleicht hat ja jemand noch die Lust und die Zeit, mir zu helfen
LG DiDi
dann stell doch pls Dein Programm gezipped mal auf rapidshare
ERLEDIGT!!!
Hab einfach anstelle von:
Visual Basic-Quellcode
If value.Contains("change_please") Then link.InvokeMember("click")
Das hier gemacht
Visual Basic-Quellcode
If value.Contains("muenchen") Then link.InvokeMember("click")
Klappt prima!!
DANKE FÜR EURE HILFE!!
IHR SEID DIE BESTEN!!!
Lg Markus
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „DiDi“ ()
So ist die Link-holen Sub korrekt und member werden auch invoked:
VB.NET-Quellcode
PrivateSub Links_holen()
Dim link As HtmlElement, value AsString
Dim doc As HtmlDocument = WebBrowser1.Document
Dim links As HtmlElementCollection = doc.Links
ForEach link In links
value = link.GetAttribute("href")
If value.Contains("donate") Then
Debug.Print("found: " & value)
_isBusy =True
link.InvokeMember("click")
waitComplete()
EndIf
Next
EndSub
Folgefehler kommen, insbesondere Popups, die aber wohl eher mit dem Pennergame, eigenen Spendenlink und spendenspezifischen Details zu tun haben. Aber das musst Du bitte selber klären, ich bin kein Anhänger von diesem Game und wir sind auch keine Cheat-Programmierer.
Mir ging es nur darum das invoke zu überprüfen ...