Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование InternetExplorer / 11 сообщений из 11, страница 1 из 1
25.12.2008, 14:59
    #35735106
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Всем привет!
Помогите понять одну вещь.
Создаю объект InternetExplorer.Application, инициирую, результат сохраняю в объект
Код: plaintext
1.
2.
3.
4.
5.
Set IE = CreateObject("InternetExplorer.Application")
IE.Navigate "....."
.........
Set DocModal = IE.Document
.........
Затем, чтобы не терять время на инициацию нового объекта InternetExplorer.Application, в других подпрограммах использую тот же объект IE, меняю навигацию, загружаю страничку. Результат сохраняю в другой объект типа HTMLDocument, например iDoc, определенный в этой подпрограмме.
Все нормально отрабатывается. Наблюдается некоторое ускорение работы программы в целом, так как не надо создавать новый объект InternetExplorer.Application.
НО!
При возврате в главную процедуру обнаруживаю, что объект DocModal пуст, хотя с ним никаких опраций не производил. С чем это связано? Или эти два объекта каким-то образом связаны?
...
Рейтинг: 0 / 0
25.12.2008, 15:07
    #35735130
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Это две ссылки на один и тот же объект.
...
Рейтинг: 0 / 0
25.12.2008, 15:17
    #35735164
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Antonariy,

Спасибо за ответ.
Тогда напрашивается вопрос: можно ли их разделить? Т.е. создать один объект InternetExplorer.Application и к нему создавать множество объектов HTMLDocument по аналогии Word-а?
...
Рейтинг: 0 / 0
25.12.2008, 15:19
    #35735172
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Нет.
...
Рейтинг: 0 / 0
25.12.2008, 15:20
    #35735178
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Хотя зависит от того, что вы с ним делаете. Можно вообще обойтись без IE.
...
Рейтинг: 0 / 0
25.12.2008, 15:42
    #35735259
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Antonariy,
Таким образом?

Код: plaintext
1.
2.
3.
4.
5.
6.
Dim doc As New MSHTML.HTMLDocument
Dim doc2 As MSHTML.HTMLDocument

Set doc2 = doc.createDocumentFromUrl("www.ya.ru", vbNullString)
Do Until doc2.readyState = "complete"
DoEvents
Loop
...
Рейтинг: 0 / 0
25.12.2008, 15:48
    #35735283
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Да.
...
Рейтинг: 0 / 0
25.12.2008, 15:53
    #35735305
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Antonariy,

Т.е. в этом случае, если я создам глобальную переменную doc и в подпрограммах буду ссылаться на нее указанным способом, то будут создаваться отдельные локальные переменные doc2 (и тому подобные), которые не будут мешать друг другу?
...
Рейтинг: 0 / 0
25.12.2008, 16:02
    #35735355
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Да.
Можно обойтись без глобальной переменной.
Код: plaintext
1.
2.
3.
Function CreateHTMLDocument(url As String) As HTMLDocument
    Set CreateHTMLDocument = New HTMLDocument
    Set CreateHTMLDocument = CreateHTMLDocument.createDocumentFromUrl(url, vbNullString)
End With
...
Рейтинг: 0 / 0
25.12.2008, 16:50
    #35735534
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Спасибо!
...
Рейтинг: 0 / 0
12.01.2009, 18:40
    #35753310
SomeNeeder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование InternetExplorer
Все же переменная нужна. Во всяком случае, для меня. Добавил от себя и получилось:
Код: plaintext
1.
2.
3.
4.
5.
6.
Function CreateHTMLDocument(url As String, strvb As String) As MSHTML.HTMLDocument
Set CreateHTMLDocument = New MSHTML.HTMLDocument
Set CreateHTMLDocument = GlobDoc.createDocumentFromUrl(url, vbNullString)
Do
    DoEvents
Loop Until CreateHTMLDocument.readyState = "complete"
End Function

Интересно, что GlobDoc объявлена Public-ом в модуле, но при выходе из функции она теряет свое значение.
И еще: используя свой предыдущий вариант, со временем (30-60 минут), в программе наступал кризис недостатка системных ресурсов, возникала ошибка и программа зависала напрочь. Хотя другие приложения работали, правда с "тормозами".
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование InternetExplorer / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]