2014-01-09 4 views
0

Я пытаюсь загрузить веб-страницу в компоненте веб-браузера в форме окна.Соединение Wlan после загрузки страницы

Перед загрузкой страницы Я запускаю командный файл для подключения к выбранному соединению Wlan.

Проблема заключается в том, что WLAN подключается через определенную задержку, и в это время веб-браузер загружает веб-страницу, которая не загружается.

Как добавить задержку между этими двумя событиями

pe.WaitForExit() 

webBrowser1.Navigate("http://10.10.116.5:8090/httpclient.html") 

Ниже событие DocumentCompleted

Sub WebBrowser1DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) 
     Do While webBrowser1.ReadyState <> WebBrowserReadyState.Complete 

      MsgBox("Here3") 
      webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("username").Item(0).SetAttribute("value",username) 
      webBrowser1.Document.GetElementsByTagName("input").GetElementsByName("password").Item(0).SetAttribute("value",password) 

      webBrowser1.Document.GetElementById("logincaption").Focus() 
      webBrowser1.Document.GetElementById("logincaption").InvokeMember("click") 
      MsgBox("logged in") 
     Loop 
    End Sub 

Может кто-то помочь мне

ответ

1

Вы можете попробовать проверить «состояние "пакетного файла в BackgroundWorker и загрузить страницу после завершения работника.

Public Sub Start() 
    Dim file As String = "path_and_name_of_file" 
    'TODO: Execute batch "path_and_name_of_file". 
    Me.BackgroundWorker1.RunWorkerAsync(file) 
End Sub 

Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork 

    Dim path As String = CStr(e.Argument) 
    Dim watch As New Stopwatch() 
    Dim timedOut As Boolean = False 

    watch.Start() 

    Do 

     Try 
      Using stream As IO.Stream = New IO.FileStream(path, IO.FileMode.Open) 
      End Using 
      Exit Do 
     Catch ex As Exception 
     End Try 

     'Time out after 2 minutes. 
     If (watch.Elapsed.TotalMinutes > 2) Then 
      timedOut = True 
      Exit Do 
     Else 
      Threading.Thread.Sleep(500) '<- Give thread some rest. 
     End If 

    Loop 

    watch.Stop() 

    ''Uncomment this line if you will add a 3 second delay AFTER executed batch: 
    'If (Not cancelled) Then 
    ' Threading.Thread.Sleep(3000) 
    'End If 

End Sub 

Private Sub BackgroundWorker1_RunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) Handles BackgroundWorker1.RunWorkerCompleted 
    'TODO: Load page. 
End Sub 

Редактировать

Давай думать об этом, вы можете попробовать пинговать IP-адрес:

Private Sub BackgroundWorker1_DoWork(sender As Object, e As DoWorkEventArgs) Handles BackgroundWorker1.DoWork 

    Dim watch As New Stopwatch() 
    Dim timedOut As Boolean = False 

    watch.Start() 

    Do 

     Try 
      If (My.Computer.Network.Ping("10.10.116.5", 100)) Then 
       Exit Do 
      End If 
     Catch ex As Exception 
     End Try 

     'Time out after 2 minutes. 
     If (watch.Elapsed.TotalMinutes > 2) Then 
      timedOut = True 
      Exit Do 
     Else 
      Threading.Thread.Sleep(500) '<- Give thread some rest. 
     End If 

    Loop 

    watch.Stop() 

End Sub 
Смежные вопросы