powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование InternetExplorer
11 сообщений из 11, страница 1 из 1
Использование InternetExplorer
    #35735106
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!
Помогите понять одну вещь.
Создаю объект 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
Использование InternetExplorer
    #35735130
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это две ссылки на один и тот же объект.
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735164
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Спасибо за ответ.
Тогда напрашивается вопрос: можно ли их разделить? Т.е. создать один объект InternetExplorer.Application и к нему создавать множество объектов HTMLDocument по аналогии Word-а?
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735172
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735178
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя зависит от того, что вы с ним делаете. Можно вообще обойтись без IE.
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735259
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
Использование InternetExplorer
    #35735283
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735305
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Т.е. в этом случае, если я создам глобальную переменную doc и в подпрограммах буду ссылаться на нее указанным способом, то будут создаваться отдельные локальные переменные doc2 (и тому подобные), которые не будут мешать друг другу?
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35735355
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.
Можно обойтись без глобальной переменной.
Код: 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
Использование InternetExplorer
    #35735534
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо!
...
Рейтинг: 0 / 0
Использование InternetExplorer
    #35753310
SomeNeeder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все же переменная нужна. Во всяком случае, для меня. Добавил от себя и получилось:
Код: 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
11 сообщений из 11, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Использование InternetExplorer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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