Webbrowser проверка на загрузку страницы

Тема в разделе "Visual Basic", создана пользователем zazaza, 17 май 2011.

Наш партнер Genesis Hackspace
  1. zazaza

    zazaza Гость

    в процессе написания программы возникла пожалуй главная проблема..

    Не могу никак придумать нормальную систему что бы проследить загрузилась ли интернет страница или нет.


    Моя задумка в данном вопросе заключается в следующем :

    Компонент WEBBROWSER начинает открывать какую нибудь страницу и прежде чем приступить к новой задачи сразу проверяется загрузилась ли страница полностью.

    Если "Да" то идём далее если нет "то ждём загрузки страницы "

    я попробовал для теста такой вариант но он потерпел крах:

    на фоме объекты:
    * webbrowser
    * button1
    * textbox
    * timer1 с интервалом например 5000

    Код (LotusScript):
    Public Class Form1
    Public proverka As Boolean


    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    proverka = True
    End Sub



    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WebBrowser1.Navigate(TextBox1.Text)
    Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If proverka = True Then
    Debug.WriteLine("Страница загрузилась")
    Else
    proverka = False
    End If
    End Sub


    End Class
    Ещё попробовал такой вариант: но и он без особого успеха.
    * webbrowser
    * button1
    * textbox
    * timer1 с интервалом например 5000
    *progressbar1

    Код (LotusScript):
    Public Class Form1
    Private poverka As Boolean

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    WebBrowser1.Navigate(TextBox1.Text)
    Timer1.Enabled = True
    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    If ProgressBar1.Value < 100 Then
    poverka = False
    Else
    Debug.WriteLine("страница загрузилась")
    End If
    End Sub


    Private Sub WebBrowser1_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser1.ProgressChanged
    ProgressBar1.Value = e.CurrentProgress
    End Sub

    End Class
    Когда я запускаю програму и пытаюсь посмотреть результаты WRITELINE то складывается впечатление что страница загружается несколько раз и там образом вместо того что бы напсиать 1 раз "Страница загрузилась" он её пишет в пределах 5 секунд 2-3 раза.

    Может есть ещё какие варианты проследить загрузку страницы более точно?


    заранее спасибо
     
  2. zazaza

    zazaza Гость

    А всё разобрался.
    Просто у меня уже перегрев начался
     
Загрузка...

Поделиться этой страницей