Vb.net 无限循环/重复脚本?
我有一个Visual Basic脚本,似乎无法使其重复/循环。我希望脚本在单击给定的变量后重复,然后刷新页面。然后页面刷新,刻度为0,但我希望脚本再次重复(无限)。以下是我正在处理的脚本:Vb.net 无限循环/重复脚本?,vb.net,loops,browser,refresh,Vb.net,Loops,Browser,Refresh,我有一个Visual Basic脚本,似乎无法使其重复/循环。我希望脚本在单击给定的变量后重复,然后刷新页面。然后页面刷新,刻度为0,但我希望脚本再次重复(无限)。以下是我正在处理的脚本: Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick If Not number_of_ticks &g
Private Sub Timer1_Tick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Timer1.Tick
If Not number_of_ticks > 100 Then
number_of_ticks += 1
WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
Else
'number_of_ticks has exceed the maximum amount of allowed ticks
Timer1.Enabled = False
WebBrowser1.Refresh()
number_of_ticks = 0
End If
End Sub
但当我尝试执行循环时,它不起作用,程序会变得无响应:
Private Sub Timer1_Tick(ByVal sender As System.Object,
ByVal e As System.EventArgs) Handles Timer1.Tick
Do
If Not number_of_ticks > 100 Then
number_of_ticks += 1
WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
Else
'number_of_ticks has exceed the maximum amount of allowed ticks
Timer1.Enabled = False
WebBrowser1.Refresh()
number_of_ticks = 0
End If
Loop
End Sub
我不知道为什么会这样,有什么帮助吗 您的
Do循环
会导致程序永远卡住。也许您应该在方法中重新启用计时器:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Not number_of_ticks > 100 And Not WebBrowser1.IsBusy Then
number_of_ticks += 1
WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
Else
'number_of_ticks has exceed the maximum amount of allowed ticks
Timer1.Enabled = False
WebBrowser1.Refresh()
number_of_ticks = 0
' re-enable the timer to repeat again
Timer1.Enabled = True
End If
End Sub
啊,我以为这会奏效,但有一个问题:我认为这个问题的意思是,它试图在页面完全刷新之前返回到单击状态。所以我想我需要先加载一个IF-WebBrowser,然后启用Timer1,但我对VB相当陌生,我想知道如何在IF语句中添加IF?@JackC.-我没有对浏览器控件做太多操作,因此我的编辑可能对您不起作用。
IsBusy
标志告诉您浏览器是否仍在加载文件,并且可能在此处用作检查。我在第一个If
语句中添加了对IsBusy
的检查。谢谢你的帮助,伙计:)