Массив из WB. Не происходит READYSTATE_COMPLETE.

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Массив из WB. Не происходит READYSTATE_COMPLETE.

Сообщение dr.MIG » 08.12.2007 (Сб) 15:01

Создаю четыре объекта WebBrowser: Load WebBrowser(i).
Затем загружаю в них пустую страницу и жду, когда она загрузится:
Код: Выделить всё
    For Each objWB In WebBrowser
        objWB.Navigate "res://mshtml.dll/blank.htm"
            While objWB.ReadyState <> READYSTATE_COMPLETE
                DoEvents
            Wend
    Next


С WebBrowser(0), который я ручками добавлял на форму всё О'k, у остальных трёх ReadyState всегда оказывается READYSTATE_INTERACTIVE. Почему с ними не происходит READYSTATE_COMPLETE?
Salus populi suprema lex

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.12.2007 (Сб) 15:52

Возможны три причины
1) Трех остальных броузеров не видно
2) Броузеры крайне глючно работают в массивах. И более стабильно, если завернуть броузер в юзерконтрол и уже из юзерконтрола делать массив.
3) Работая с несколькими экземплярами WB легко словить ошибку на DoEvents. В начале кода случайно нет On Error Resume Next?
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 08.12.2007 (Сб) 16:38

Да, трёх остальных не видно -- они находятся на разных вкладках Tab'a... Видно только первый, с которым как раз всё О'К. Значит мне попробовать завернуть их в UserControl? Использовать что-то кроме массива WB, имхо, не получится, так как надо отображать с возможностью редактирования хитрые табличные данные...
Salus populi suprema lex

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 08.12.2007 (Сб) 17:25

Вебброузер не обрабатывает страницу, если его не видно. Сделай их размером хотя бы в пиксель, но на видном месте, а по факту загрузки прячь по табам.
Лучший способ понять что-то самому — объяснить это другому.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Сообщение dr.MIG » 09.12.2007 (Вс) 17:16

Antonariy, спасибо огромное! Всё так и есть. После загрузки отобразил: WebBrowser(i).Visible=True, подождал пока загрузится документ и спрятал в Tab. Теперь всё О'k.
Salus populi suprema lex

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 09.12.2007 (Вс) 22:12

Код: Выделить всё

Set IE1 = New InternetExplorer
Set IE2 = New InternetExplorer
Set IE3 = New InternetExplorer
Set IE4 = New InternetExplorer

Class InternetExplorer
   Public Application
   Private Sub Class_Initialize
      Set Application = CreateObject("InternetExplorer.Application")
      Application.Navigate "about:blank"
      Do
         WScript.Sleep 10
      Loop Until Application.ReadyState = 4
      MsgBox "Загрузился"
      'Application.Visible = True
   End Sub
End Class


Доброго времени товарисчи, сейчас попробывал сделать загрузку в невидимом режиме. Все грузятся нормально. Что я не учитываю ? :roll:
Вложения
WB.zip
(355 байт) Скачиваний: 42

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Сообщение Antonariy » 09.12.2007 (Вс) 23:18

То, что это SHDocVw.InternetExplorer, а не SHDocVw.WebBrowser.
Лучший способ понять что-то самому — объяснить это другому.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2056
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 10.12.2007 (Пн) 0:13

Аааа. Поняня. :) Я комп переставил. VB ещё не установил. Поэтому проверить с WEBBrowser не мог. :) сорри


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

    TopList  
cron