Ik ben bezig met het maken van een programma dat mijn rooster ophaalt van het internet. Om bij mijn rooster te komen moeten er eerst een paar velden worden ingevuld. Ik maak gebruik van SHDocVw.dll en mshtml.dll om velden in te vullen op een website en dat gaat prima, totdat ik op submit wil drukken met de volgende code:
Het invullen van het veld zelf gebeurt met dezelfde code, maar met iHTMLEle2.setAttribute.
Tussen de invul en submit activiteiten door zit een lus die wacht totdat de browser niet meer bezig is en de nieuwe instructies dus kunnen beginnen:
De velden worden keurig ingevuld zodra de pagina geladen is, maar het moment waarop de submit button wordt ingedrukt verschilt sterk. Soms direct na het invullen van het formulier, maar soms kan het wel een minuut duren.
Ik heb al geprobeerd om de delay lus eruit te gooien, maar dan komen de instructies niet bij de browser aan omdat die nog bezig is met andere dingen/laden.
Dus de vraag luid: Hoe zorg ik ervoor dat de submit button direct na het invullen van het veld wordt ingedrukt zonder vertraging?
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| 'variabelen aan het begin van het programma Dim HTMLDoc2 As mshtml.HTMLDocument HTMLDoc2 = wbBrowser.Document Dim iHTMLCol2 As IHTMLElementCollection Dim iHTMLEle2 As IHTMLElement Dim str2 As String iHTMLCol2 = HTMLDoc.getElementsByTagName("input") 'submit button For Each iHTMLEle2 In iHTMLCol2 If Not iHTMLEle2.getAttribute("name") Is Nothing Then str2 = iHTMLEle2.getAttribute("name").ToString If str2 = "roosterknop" Then iHTMLEle2.click() 'iHTMLEle2.setAttribute("value", waarde) voor invullen van veld Exit For End If End If Next |
Het invullen van het veld zelf gebeurt met dezelfde code, maar met iHTMLEle2.setAttribute.
Tussen de invul en submit activiteiten door zit een lus die wacht totdat de browser niet meer bezig is en de nieuwe instructies dus kunnen beginnen:
Visual Basic .NET:
1
2
| Do Loop Until Not wbBrowser.Busy |
De velden worden keurig ingevuld zodra de pagina geladen is, maar het moment waarop de submit button wordt ingedrukt verschilt sterk. Soms direct na het invullen van het formulier, maar soms kan het wel een minuut duren.
Ik heb al geprobeerd om de delay lus eruit te gooien, maar dan komen de instructies niet bij de browser aan omdat die nog bezig is met andere dingen/laden.
Dus de vraag luid: Hoe zorg ik ervoor dat de submit button direct na het invullen van het veld wordt ingedrukt zonder vertraging?