2013-04-02 18 views
0

我有一個我可以登錄社交網絡的應用程序,並經常檢查以查看重置非活動帳戶的時間。在這種情況下,我在他們的網站上使用Xbox的免費gamertag更改來查看這些名稱何時重置。我創建了一個應用程序,我登錄到Xbox.com並導航到更改webbrowser上的gamertag頁面,在那裏我鍵入我想要的文本框中的哪個Gamertag(即將重置的非活動標記),然後點擊「Autoclick」按鈕,然後它不斷嘗試聲明帳戶名稱。所以我創建了這個腳本,但後來我意識到它會很快就會超時。該程序只能以高速運行約10分鐘(有三種速度,中速 - 中速),但速度較慢時會持續一段時間。但是,我意識到我必須每隔幾秒鐘刷新一次頁面,以延長工作時間。一旦我這樣做了,這個應用程序就更耐用了,並且持續了大約30多分鐘。但是,它仍然超時。有些人制作這些腳本可以持續數天,但我只是瞄準一天。所以我問,如果有人知道我可以如何改善這一點?這是我的腳本的一部分。我有一個按鈕,一旦點擊使計時器自動點擊索賠按鈕。程序在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 

,然後定時器1,它執行autoclicking,但也有更新特性,使其更經久耐用:

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 

我不知道的很多方法使它持續更長時間,但如果任何人有任何線索如何做到這一點,我會非常感激。

回答

0

從您的描述中,您聽起來像是在說刷新頁面的頻率越高,直到註銷爲止的時間越短。定時器的時間間隔屬性以毫秒爲單位進行測量,此時最慢的設置爲每個500毫秒170個滴答。所以你每隔85秒檢查一下,現在是否有這個缺口。你可能會妥協很多,我認爲,而不是設置爲1000或2000的時間間隔。

您的其他選項是每隔30分鐘導航到登錄頁面並重新登錄?

ps。

而不是使用:

If ((WebBrowser1.IsBusy)) Then 
    Else 
     'code 

你可以只使用:

If not WebBrowser1.IsBusy Then 
    'code 

稍微看起來更容易閱讀海事組織。

側邊欄:我認爲你的程序是相當冷靜:)

0

我沒有數年的web瀏覽器對象的工作,但我相信它可能你可能會陷入無窮無盡WebBrowser1.IsBusy。它與您在瀏覽頁面時類似,有時永不結束加載。在這種情況下,您需要在WebBrowser1.Stop之後停止某種超時修改,然後嘗試再次導航到頁面。

或者乾脆忽略isbusy並在刷新頁面之前強制停止。增加定時器,因爲你的500最長定時器實際上是500毫秒,這是0.5秒 - 你的網頁可能無法快速加載。