Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 程序在30分钟后没有响应_Vb.net_Browser_Refresh - Fatal编程技术网

Vb.net 程序在30分钟后没有响应

Vb.net 程序在30分钟后没有响应,vb.net,browser,refresh,Vb.net,Browser,Refresh,我有一个应用程序,我可以登录到社会网络,并不断检查,看看什么时候不活跃的帐户被重置。在这个例子中,我使用Xbox网站上的免费玩家代号更改来查看这些名字何时被重置。我创建了一个应用程序,在其中我登录Xbox.com并导航到webbrowser上的change gamertag页面,在文本框(一个不活动的标签,很快就会重置)中键入我想要的gamertag,在文本框中我点击“Autoclick”按钮,它会不断尝试声明帐户名。所以我创建了这个脚本,但后来我意识到它会超时太快。这个程序在高速上只能持续10

我有一个应用程序,我可以登录到社会网络,并不断检查,看看什么时候不活跃的帐户被重置。在这个例子中,我使用Xbox网站上的免费玩家代号更改来查看这些名字何时被重置。我创建了一个应用程序,在其中我登录Xbox.com并导航到webbrowser上的change gamertag页面,在文本框(一个不活动的标签,很快就会重置)中键入我想要的gamertag,在文本框中我点击“Autoclick”按钮,它会不断尝试声明帐户名。所以我创建了这个脚本,但后来我意识到它会超时太快。这个程序在高速上只能持续10分钟左右(有3种速度,慢速-中速-中速),但在慢速上会持续更长的时间。然而,我意识到我必须每隔几秒钟刷新一次页面,这样页面才能工作更长时间。一旦我这样做了,应用程序的耐用性就会大大提高,并且持续了30多分钟。然而,它仍然超时。有些人会把这些脚本写上好几天,但我的目标只是一天。所以我想问,是否有人知道我如何改进这一点?这是我剧本的一部分。我有一个按钮,一旦点击,计时器就会自动点击索赔按钮

所以我的按钮:

Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    If RadioButton1.Checked = True Then
        Timer1.Interval = 40
    ElseIf RadioButton2.Checked = True Then
        Timer1.Interval = 175
    Else
        Timer1.Interval = 500
    End If

    If ((WebBrowser1.IsBusy)) Then



    Else

        Timer1.Enabled = True



    End If


End Sub
然后是Timer1,它执行自动单击,但也具有刷新属性以使其更耐用:

 Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick



    If Not number_of_ticks > 170 Then
        number_of_ticks += 1
        If ((WebBrowser1.IsBusy)) Then
        Else
            If WebBrowser1.Url.ToString = "https://live.xbox.com/en-US/ChangeGamertag" Then


                WebBrowser1.Document.GetElementById("NewGamertag").SetAttribute("value", txtTurbo.Text)

                WebBrowser1.Document.GetElementById("claimIt").InvokeMember("Click")
            Else

                WebBrowser1.Navigate("https://live.xbox.com/en-US/ChangeGamertag")


            End If
        End If

    Else
        'number_of_ticks has exceed the maximum amount of allowed ticks
        Timer1.Enabled = False
        WebBrowser1.Refresh()

        number_of_ticks = 0
        Timer1.Enabled = True



    End If



End Sub

我不知道有多少方法可以让它持续更长的时间,但如果有人对如何做到这一点有任何线索,我将非常感谢

根据您的描述,您似乎在说,刷新页面的频率越高,注销前的时间就越短。计时器的interval属性是以毫秒为单位测量的,此时最慢的设置是每500毫秒170个刻度。所以你每85秒检查一次尼克现在是否有空。我认为,你可以在这方面做出很多妥协,而不是将间隔设置为1000或2000

您的另一个选择是每30分钟导航到登录页面,然后再次登录

附言

而不是使用:

If ((WebBrowser1.IsBusy)) Then
    Else
        'code
您可以使用:

If not WebBrowser1.IsBusy Then
    'code
它看起来更容易阅读


侧边栏:我觉得你的程序很酷:)

我已经好几年没有使用WebBrowser对象了,但我相信你可能会被无尽的
WebBrowser1卡住。我很忙。它类似于当你浏览到一个页面,有时它永远不会结束加载。在这种情况下,您需要使用某种超时机制来停止
WebBrowser1。停止
,然后再次尝试导航到页面

或者干脆忽略isbusy并在刷新页面之前强制停止。增加计时器,因为您的最长计时器500实际上是500毫秒,即0.5秒-您的网页加载可能没有那么快