2013-04-02 2 views
0

소셜 네트워크에 로그인하여 비활성 계정이 재설정 된 경우 계속 확인할 수있는 응용 프로그램이 있습니다. 이 예에서는이 이름을 재설정 할 때 웹 사이트에서 Xbox의 무료 게이머 태그 변경을 사용하고 있습니다. 나는 Xbox.com에 로그인하는 응용 프로그램을 만들었고 웹 브라우저에서 게이머 태그 페이지를 변경하여 "자동 클록"버튼을 누른 텍스트 상자 (곧 재설정 될 비활성 태그)에서 원하는 게이머 태그를 입력 한 다음 그것은 지속적으로 계정 이름을 주장하려고 시도합니다. 그래서이 스크립트를 만들었지 만 너무 빨리 시간이 초과 될 것이라는 것을 깨달았습니다. 이 프로그램은 빠른 속도로 약 10 분간 지속됩니다 (느린 속도 - 중간 속도 - 3 가지 속도가 있음). 그러나 느린 속도로는 약간 더 오래 지속됩니다. 그러나, 페이지를 새로 고쳐야 만하므로 더 오래 사용할 수 있습니다. 내가 이것을 한 번 더 응용할 수 있었고 약 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

설명에서 볼 수 있듯이 페이지를 자주 새로 고침할수록 로그 아웃 될 때까지 걸리는 시간이 짧아집니다. Timer의 interval 속성은 가장 느린 설정이 각각 500 밀리 초에서 170 틱인 순간의 밀리 초 단위로 측정됩니다. 따라서 해당 닉이 현재 사용 가능한지 여부를 85 초마다 확인하고 있습니다. 간격을 1000 또는 2000으로 설정하면 꽤 많이 손상 될 수 있습니다.

30 분마다 로그인 페이지로 이동 한 다음 다시 로그인하면됩니다.

ps. 대신 사용

:

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

당신은 사용할 수 있습니다

If not WebBrowser1.IsBusy Then 
    'code 

그것은 IMO에서 읽을 약간 쉽게 보인다.

사이드 바 : 난 당신의 프로그램이 :) 아주 멋진 생각

0

내가 몇 년 동안 웹 브라우저 객체에 근무 한 적이없는,하지만 난 당신이 끝없는 WebBrowser1.IsBusy에 갇히지 수의 수 생각합니다. 페이지를 탐색 할 때와 비슷하며 때로는로드가 끝나지 않는 경우가 있습니다. 이 경우 WebBrowser1.Stop으로 멈추고 다시 페이지로 이동하려고하면 일종의 타임 아웃 메커니즘이 필요할 것입니다.

간단히 isbusy를 무시하고 페이지를 새로 고치기 전에 강제 중지하십시오. 가장 긴 타이머 500이 실제로 0.5 초인 500 밀리 초이기 때문에 타이머를 늘리면 웹 페이지가 빨리로드되지 않을 수 있습니다.

관련 문제