Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также любые проблемы программирования на различных макроязыках и в скриптовых средах)

Описание объектов Windows Script Host, их свойств и методов

Объекты InternetExplorer и WebBrowser

Содержание:

1. Создание объектов
2. Свойства
3. Методы
    3.1. Метод ExecWB
    3.2. Метод QueryStatusWB
    3.3. Метод ShowBrowserBar
    3.4. Метод Navigate
    3.5. Метод Refresh2
4. События
5. Примеры кода

1. Создание объектов

Internet Explorer включает два ActiveX-объекта: WebBrowser Object и InternetExplorer Object. Элемент управления WebBrowser может быть интегрирован непосредственно в форму VB или размещён на Web-странице, а объект InternetExplorer доступен только через механизм OLE Automation. Функциональность WebBrowser меньше по сравнению с функциональностью InternetExplorer. Упрощенно говоря, WebBrowser — это собственно окно просмотра документа в браузере, а InternetExplorer — это весь браузер, включая меню, панели инструментов, строку состояния и прочее. Оба объекта находятся в библиотеке "Microsoft Internet Controls" (shdocvw.dll в каталоге system32). Также может пригодиться библиотека "Microsoft HTML Object Library" (mshtml.dll там же) - это именно та среда, с которой оперируют скрипты на языках JavaScript и VBScript на Web-страницах. Примечание: приведённое ниже описание свойств, методов и событий не является до конца исчерпывающим (исчерпывающее описание можно найти в MSDN) и предназначено, в первую очередь, для работы с обозревателем как с OLE-Automation сервером из различных скриптовых сред или Visual Basic.

Пример создания OLE-объекта InternetExplorer:

Set objIE = CreateObject("InternetExplorer.Application")

Пример размещения ActivX-объекта WebBrowser на Web-странице:

<OBJECT ID="WebBrowser" WIDTH=0 HEIGHT=0 CLASSID="clsid:8856F961-340A-11D0-A96B-00C04FD705A2"></OBJECT>

2. Свойства

Применение некоторых свойств - см. Примеры кода.


СвойствоОписаниеДоступно
Application Возвращает сам объект. Только чтение. InternetExplorer, WebBrowser
Visible Управляет видимостью окна обозревателя (булево). Чтение и запись. По умолчанию - False. InternetExplorer, WebBrowser
AddressBar Управляет отображением адресной строки обозревателя (булево). Чтение и запись. По умолчанию - True. InternetExplorer
MenuBar Управляет отображением строки меню обозревателя (булево). Чтение и запись. По умолчанию - True. InternetExplorer
ToolBar Управляет отображением панелей инструментов обозревателя (булево). Чтение и запись. По умолчанию - True. InternetExplorer
StatusBar Управляет отображением строки состояния обозревателя (булево). Чтение и запись. По умолчанию - True. InternetExplorer
FullScreen Управляет отображением окна обозревателя в полный экран (булево). Чтение и запись. По умолчанию - False. InternetExplorer
TheaterMode Управляет отображением окна обозревателя в режиме театра (булево). Чтение и запись. По умолчанию - False. Примечание: переход в режим театра и обратно интерактивно осуществляется с помощью команды меню "Вид" - "Во весь экран" или клавишей "F11". InternetExplorer
Resizable Управляет возможностью изменения размеров окна обозревателя (булево). Чтение и запись. По умолчанию - True. InternetExplorer
Silent Управляет возможностью выдачи обозревателем диалоговых окон о критических ошибках и сообщений безопасности (булево). Чтение и запись. По умолчанию - False (диалоговые окна не запрещены). InternetExplorer, WebBrowser
Offline Управляет переводом обозревателя в режим Offline (булево). Чтение и запись. По умолчанию - False. В режиме Offline обозреватель принудительно отдаёт предпочтение чтению HTML-страниц из локального кэша. InternetExplorer, WebBrowser
RegisterAsBrowser Управляет регистрацией объекта как "top-level browser" (булево). Чтение и запись. По умолчанию - False. Архитектура Microsoft Internet Explorer допускает наличие нескольких экземпляров объекта WebBrowser. Например, веб-страница с фреймами может содержать объект WebBrowser для каждого фрейма. Термин "top-level" означает объект WebBrowser, который является родительским для всех других объектов WebBrowser. InternetExplorer, WebBrowser
Parent Возвращает ссылку на родительский объект. Только чтение. InternetExplorer, WebBrowser
Container Возвращает ссылку на объект-контейнер. Только чтение. InternetExplorer, WebBrowser
TopLevelContainer Возвращает признак того, является ли объект "top-level" контейнером (булево). Только чтение. InternetExplorer, WebBrowser
RegisterAsDropTarget Управляет регистрацией объекта как принимающего данные при операциях "drag-and-drop" (булево). Чтение и запись. По умолчанию - False. InternetExplorer, WebBrowser
StatusText Устанавливает или возвращает текст строки состояния обозревателя. Чтение и запись. InternetExplorer
Height Управляет высотой окна обозревателя (в пикселах). Чтение и запись. InternetExplorer, WebBrowser
Width Управляет шириной окна обозревателя (в пикселах). Чтение и запись. InternetExplorer, WebBrowser
Top Управляет положением верхнего края окна обозревателя. Чтение и запись. InternetExplorer, WebBrowser
Left Управляет положением левого края окна обозревателя. Чтение и запись. InternetExplorer, WebBrowser
Name Возвращает имя объекта, в котором содержится элемент управления WebBrowser. Только чтение. InternetExplorer
FullName Возвращает полный путь к исполняемому файлу Microsoft Internet Explorer. Только чтение. InternetExplorer
Path Возвращает полный путь к каталогу исполняемомого файла Microsoft Internet Explorer. Только чтение. InternetExplorer
Type Возвращает тип объекта, содержащегося в документе (строка). Только чтение. InternetExplorer, WebBrowser
LocationName Возвращает имя отображаемого в данный момент ресурса (строка). Только чтение. Если отображается HTML-страница, имя ресурса - заголовок этой страницы. Если отображается папка или файл, имя ресурса - полный путь в UNC-формате. InternetExplorer, WebBrowser
LocationURL Возвращает URL отображаемого в данный момент ресурса (строка). Только чтение. Если отображается папка или файл, URL ресурса - полный путь в UNC-формате. InternetExplorer, WebBrowser
HWND Возвращает handle главного окна Microsoft Internet Explorer (целое число, Long). Только чтение. InternetExplorer
Busy Возвращает булево значение, сигнализирующее о том, занят ли объект операцией навигации или скачивания. Только чтение. Если объект занят, можно применить метод Stop для прерывания операции. InternetExplorer, WebBrowser
ReadyState Возвращает значение, сигнализирующее состояние готовности объекта. Только чтение. Возможные значения: 0 - не инициализирован, 1 - загрузка, 2 - загрузка завершена, 3 - доступны не все данные (это то состояние, когда браузер позволяет просматривать страницу в интерактивном режиме, хотя загружены ещё не все компоненты; начиная с этого момента HTML-код вполне пригоден для обработки), 4 - готово. InternetExplorer, WebBrowser
Document Возвращает объект документа (объект, функционально эквивалентный объекту документа, используемому в скриптах на Web-страницах). Только чтение. InternetExplorer, WebBrowser

3. Методы

Применение некоторых методов - см. Примеры кода.


МетодОписаниеДоступно
Stop Отменяет любую незаконченную операцию навигации или скачивания и останавливает любые динамические элементы страницы, такие, как фоновую музыку и анимацию. InternetExplorer, WebBrowser
Quit Закрывает объект. InternetExplorer
ExecWB Выполняет команду и возвращает статус выполнения. Подробнее... InternetExplorer, WebBrowser
QueryStatusWB Возвращает статус указанной команды. Подробнее... InternetExplorer
ShowBrowserBar Показывает или скрывает указанную панель обозревателя. Подробнее... InternetExplorer
ClientToWindow Конвертирует клиентские координаты точки (от левого верхнего угла клиентской области окна) в координаты окна (от левого верхнего угла окна). Первый параметр - целое число, х-координата точки в клиентской области, после вызова ClientToWindow содержит х-координату точки в координатах окна. Второй параметр - аналогично, y-координата. InternetExplorer
GoBack Осуществляет навигацию на один шаг назад по истории. InternetExplorer, WebBrowser
GoForward Осуществляет навигацию на один шаг вперёд по истории. InternetExplorer, WebBrowser
GoHome Осуществляет навигацию на домашнюю страницу. InternetExplorer, WebBrowser
GoSearch Осуществляет навигацию на страницу поиска. InternetExplorer, WebBrowser
Navigate Осуществляет навигацию к указанному ресурсу. Подробнее... InternetExplorer, WebBrowser
Navigate2 Аналогичен методу Navigate, но параметр PostData имеет тип массива SAFEARRAY. Кроме того, ресурс может быть представлен в виде PIDL (Pointer to an Item Identifier List) в пространстве имён оболочки Windows. InternetExplorer, WebBrowser
Refresh Обновляет (перезагружает) страницу. Чтобы избежать обновления ресурса из дискового кэша браузера, следует использовать соответствующие параметры при предшествующих вызовах методов Navigate или Navigate2. InternetExplorer, WebBrowser
Refresh2 Аналогичен методу Refresh, но имеет единственный необязательный параметр, который задаёт "уровень" обновления. Подробнее... InternetExplorer, WebBrowser

3.1. Метод ExecWB

Выполняет команду и возвращает статус выполнения. Доступен в InternetExplorer и WebBrowser.

Параметры:

  1. CmdID - идентификатор команды.
  2. CmdExecOpt - опции команды.
  3. PvaIn - необязательный, Variant, входные аргументы команды.
  4. PvaOut - необязательный, Variant, выходные аргументы команды.

Некоторые возможные значения параметра "CmdID" (подробнее - см. в MSDN описание "OLECMDID enumeration"):


1Меню "Файл" - "Открыть...".
4Меню "Файл" - "Сохранить как...".
6Меню "Файл" - "Печать...".
7Меню "Файл" - "Предварительный просмотр...".
8Меню "Файл" - "Параметры страницы...".

Возможные значения параметра "CmdExecOpt":


0Команда исполняется так, как принято по умолчанию.
1Перед выполнением выводится окно диалога или дополнительных настроек.
2Не запрашивать ввод пользователя (не задается никаких вопросов).
3Выводится справка по запрошенному действию, но сама команда не выполняется.

Пример:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1
objIE.ExecWB 6, 1 'выдача диалога печати
'objIE.ExecWB 6, 2 'немедленная печать

3.2. Метод QueryStatusWB

Возвращает статус указанной команды. Доступен в InternetExplorer.

Параметры:

Возможные значения флагов в возвращаемом значении (возвращаемое значение - сумма флагов):


1Команда поддерживается.
2Команда доступна и разрешена.
4Команда является переключателем и в данный момент включена.
8Команда зарезервирована для будущего использования.

Пример:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1
If objIE.QueryStatusWB(6) = 2+1 Then
    objIE.ExecWB 6, 1 'выдача диалога печати
End If

3.3. Метод ShowBrowserBar

Показывает или скрывает указанную панель обозревателя. Доступен в InternetExplorer.

Параметры:

Некоторые возможные значения параметра "vClsID":


Search{30D02401-6A81-11D0-8274-00C04FD5AE38}
Favorites{EFA24E61-B078-11D0-89E4-00C04FC9E26E}
History{EFA24E62-B078-11D0-89E4-00C04FC9E26E}
Folders{EFA24E64-B078-11d0-89E4-00C04FC9E26E}

Пример:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1
objIE.ShowBrowserBar "{30D02401-6A81-11D0-8274-00C04FD5AE38}", True

3.4. Метод Navigate

Осуществляет навигацию к указанному ресурсу (инициирует операцию открытия документа). Доступен в InternetExplorer и WebBrowser.

Параметры:

  1. Url - строка, определяющая URL или полный путь к файлу.
  2. Flags - необязательный. Набор флагов, определяющий, нужно ли добавлять ресурс в историю, записывать/читать ресурс в/из кэша, отображать ресурс в новом окне.
  3. TargetFrameName - необязательный. Строка, имя фрейма HTML, в котором следует отобразить ресурс. Если такого фрейма не существует, откроется новое окно.
  4. PostData - необязательный. Позволяет передать на Web-сервер данные, полученные в результате заполнения формы, если этот сервер требует HTTP - транзакции POST. Если этот параметр не определён, метод осуществляет HTTP GET транзакцию. Если указанный Url - не HTTPURL, параметр игнорируется.
  5. Headers - необязательный. Значение, определяющее дополнительные HTTP заголовки для отправки на сервер. Эти заголовки добавляются к заголовкам Microsoft Internet Explorer по умолчанию. Заголовки могут определять тип данных, код состояния и т.п. Если указанный Url - не HTTPURL, параметр игнорируется.

Возможные значения флагов параметра "Flags":


1navOpenInNewWindow. Открыть ресурс в новом окне.
2navNoHistory. Не добавлять ресурс в историю просмотренных. Текущая страница добавляется в историю.
4navNoReadFromCache. Не загружать страницу из кэша.
8navNoWriteToCache. Не сохранять страницу в кэше.
16navAllowAutosearch. Если навигация не удалась, осуществляется попытка навигации к корневому домену (.com, .edu и т.д.). Если и эта попытка не удалась, запускается поиск.
32navBrowserBar. Пытается использовать для навигации текущую панель браузера, если это возможно.
64navHyperlink. Если навигация не удалась, следуя гиперссылке, ресурс будет связан с псевдонимом с использованием флага BINDF_HYPERLINK.

Возможные значения параметра "TargetFrameName" (кроме собственно имени конкретного фрейма):


_BLANKЗагружать ресурс в новое безымянное окно.
_SELFЗагружать документ в тот же фрейм, в котором находится ссылающийся на него документ.
_PARENTЗагружать документ в непосредственный родительский фрейм этого фрейма в наборе фреймов FRAMESET. Это значение эквивалентно _SELF, если текущий фрейм не имеет родительского фрейма.
_TOPЗагружать документ в полное окно (закрывая все остальные фреймы). Это значение эквивалентно _SELF, если у текущего фрейма нет родительского фрейма.

Пример:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

3.5. Метод Refresh2

Аналогичен методу Refresh, но имеет единственный необязательный параметр, который задаёт "уровень" обновления. Заголовок "pragma:nocashe" запрещает серверу возвращать кэшированную копию документа, обеспечивая самую свежую информацию, однако этот заголовок может послужить причиной проблем на некоторых серверах.

Возможные значения параметра:


0REFRESH_NORMAL. Обновить без отправки HTTP-заголовка "pragma:nocashe" на сервер.
1REFRESH_IFEXPIRED. Обновить, если истёк срок давности страницы.
2REFRESH_CONTINUE. Только для внутреннего использования. Не используется.
3REFRESH_COMPLETELY. Обновить с отправкой HTTP-заголовка "pragma:nocashe" на сервер. Только для HTTP URL'ов.

4. События

Аргументы событий - см. Примеры кода.


СобытиеОписаниеДоступно
OnQuit Перед завершением работы обозревателя. InternetExplorer
OnFullScreen При изменении свойства FullScreen. InternetExplorer
OnMenuBar При изменении свойства MenuBar. InternetExplorer
OnStatusBar При изменении свойства StatusBar. InternetExplorer
OnToolBar При изменении свойства OnToolBar. InternetExplorer
OnVisible При изменении свойства Visible. InternetExplorer
PrintTemplateInstantiation При вызове диалога печати или предварительного просмотра. InternetExplorer, WebBrowser
PrintTemplateTeardown При закрытии диалога печати или предварительного просмотра. InternetExplorer, WebBrowser
BeforeNavigate2 Перед началом навигации. InternetExplorer, WebBrowser
DownloadBegin Когда начинается операция навигации. InternetExplorer, WebBrowser
NavigateComplete2 Когда документ объявляется найденным, его URL попадает в стек навигации и становится доступным для проверки. InternetExplorer, WebBrowser
DownloadComplete Когда навигация завершена, остановлена или не удалась. Возникает неоднократно: перед событием NavigateComplete2 и после него. Наступление события DownloadComplete вслед за событием NavigateComplete2 соответствует переходу в состояние READYSTATE_INTERACTIVE (свойство ReadyState = 3). InternetExplorer, WebBrowser
DocumentComplete Когда какой-либо документ полностью загружен и в строке состояния браузера появляется слово "Готово". При открытии страницы с фреймами событие может возникнуть многократно: в процессе разметки с пустым URL для каждого фрейма, затем с непустым URL для каждого фрейма, и наконец, для всего документа с URL, указанным при вызове метода Navigate. Поэтому в обработчике события следует проверять URL (который передаётся туда как аргумент). InternetExplorer, WebBrowser
NavigateError Когда во время навигации происходит ошибка. Событие происходит перед тем, как обозреватель отобразит страницу ошибки. InternetExplorer, WebBrowser
CommandStateChange Когда изменяется состояние доступности команды. InternetExplorer, WebBrowser
NewWindow2 Когда создаётся новое окно, например, при открытии ссылки в новом окне. Возможна отмена навигации. InternetExplorer, WebBrowser
StatusTextChange Когда изменяется текст в строке состояния. InternetExplorer, WebBrowser
TitleChange Когда изменяется заголовок документа. InternetExplorer, WebBrowser

5. Примеры кода

Свойства AddressBar и MenuBar:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.AddressBar = False
objIE.MenuBar = False
objIE.Visible = 1

Свойства ToolBar, StatusBar и Resizable:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.ToolBar = False
objIE.StatusBar = False
objIE.Resizable = False
objIE.Visible = 1

Свойство FullScreen:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.FullScreen = True
objIE.Visible = 1

Свойство TheaterMode:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.TheaterMode = True
objIE.Visible = 1

Свойство StatusText:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1
objIE.Document.Write objIE.StatusText
objIE.StatusText = "ТЕКСТ СТРОКИ СОСТОЯНИЯ"

Свойства Height, Width, Top и Left:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Height = 200
objIE.Width = 300
objIE.Top = 0
objIE.Left = 0
objIE.Visible = 1

Свойства Name, FullName, Path, Type, LocationName и LocationURL:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Document.Write "Name = """ & objIE.Name & """<br>"
objIE.Document.Write "FullName = """ & objIE.FullName & """<br>"
objIE.Document.Write "Path = """ & objIE.Path & """<br>"
objIE.Document.Write "Type = """ & objIE.Type & """<br>"
objIE.Document.Write "LocationName = """ & objIE.LocationName & """<br>"
objIE.Document.Write "LocationURL = """ & objIE.LocationURL & """<br>"
objIE.Visible = 1

Свойство Busy и метод Stop:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "qwerty"
If objIE.Busy Then
    objIE.Stop
End If
objIE.Visible = 1

Свойство HWND:

On Error Resume Next
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1
Set objShellApp = CreateObject("Shell.Application")
Set objFolder = objShellApp.BrowseForFolder(objIE.HWND, "Выбор папки", 0, "C:\")
objIE.Document.Write objFolder.Self.Path
If Err.Number <> 0 Then
    objIE.Document.Write "Папка не выбрана!"
End If

Свойство Document:

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Document.Write "Hello, Internet Explorer!"
objIE.Visible = 1

Свойство ReadyState:

Set objIE = CreateObject("InternetExplorer.Application")
MsgBox "ReadyState = " & objIE.ReadyState
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
MsgBox "ReadyState = " & objIE.ReadyState
objIE.Visible = 1

Управление заголовком окна, отключение контекстного меню:

Set WshShell = CreateObject("WScript.Shell")
WshShell.RegWrite "HKCU\Software\Microsoft\Internet Explorer\Main\Window Title", "Заголовок окна IE"
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Document.Write "<title>Заголовок отчёта</title>"
objIE.Document.Write "<body oncontextmenu=""return false""></body>"
objIE.ToolBar = False
objIE.StatusBar = False
objIE.Visible = 1
WshShell.RegDelete "HKCU\Software\Microsoft\Internet Explorer\Main\Window Title"

Пример обработки событий изменения свойств объекта:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

objIE.FullScreen = False 'сработает событие OnFullScreen
objIE.MenuBar = True 'сработает событие OnMenuBar
objIE.StatusBar = True 'сработает событие OnStatusBar
objIE.ToolBar = True 'сработает событие OnToolBar

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    MsgBox "OnQuit event!"
    WScript.Quit
End Sub
'********************************************************************
Sub IE_OnFullScreen(ByVal FullScreen)
    MsgBox "OnFullScreen event!"
End Sub
'********************************************************************
Sub IE_OnMenuBar(ByVal MenuBar)
    MsgBox "OnMenuBar event!"
End Sub
'********************************************************************
Sub IE_OnStatusBar(ByVal StatusBar)
    MsgBox "OnStatusBar event!"
End Sub
'********************************************************************
Sub IE_OnToolBar(ByVal ToolBar)
    MsgBox "OnToolBar event!"
End Sub
'********************************************************************
Sub IE_OnVisible(ByVal Visible)
    MsgBox "OnVisible event!"
End Sub

Пример обработки событий печати:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    MsgBox "OnQuit event!"
    WScript.Quit
End Sub
'********************************************************************
Sub IE_PrintTemplateInstantiation(ByVal pDisp)
    pDisp.Document.Write "PrintTemplateInstantiation event!>br>"
End Sub
'********************************************************************
Sub IE_PrintTemplateTeardown(ByVal pDisp)
    pDisp.Document.Write "PrintTemplateTeardown event!>br>"
End Sub

Пример обработки событий навигации:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    WScript.Quit
End Sub
'********************************************************************
Sub IE_BeforeNavigate2(ByVal pDisp, ByRef url, ByRef Flags, ByRef TargetFrameName, _
                       ByRef PostData, ByRef Headers, ByRef Cancel)
    'принудительная навигация на "about:blank"
    If url <> "about:blank" Then
        pDisp.Stop
        Cancel = True
        pDisp.Navigate "about:blank"
    End If
End Sub
'********************************************************************
Sub IE_NavigateComplete2(ByVal pDisp, ByVal URL)
    MsgBox "NavigateComplete2 event" & vbCrLf & "URL: " & URL
End Sub
'********************************************************************
Sub IE_DocumentComplete(ByVal pDisp, ByVal URL)
    MsgBox "DocumentComplete event" & vbCrLf & "URL: " & URL
End Sub
'********************************************************************
Sub IE_DownloadComplete()
    MsgBox "DownloadComplete event"
End Sub
'********************************************************************
Sub IE_DownloadBegin()
    MsgBox "DownloadBegin event"
End Sub

Пример обработки события ошибки навигации:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    WScript.Quit
End Sub
'********************************************************************
Sub IE_NavigateError(ByVal pDisp, ByVal url, ByVal TargetFrameName, _
                     ByVal StatusCode, ByRef Cancel)
    MsgBox "NavigateError event"
End Sub

Пример обработки события CommandStateChange:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    WScript.Quit
End Sub
'********************************************************************
Sub IE_CommandStateChange(ByVal Command, ByVal Enable)
    If Command=&hFFFFFFFF Then 'Command=CSC_UPDATECOMMANDS
        MsgBox "Toolbar button might have changed. Command is enabled = " & Enable
    Elseif Command=&h00000001 Then 'Command=CSC_NAVIGATEFORWARD
        MsgBox "Forward button has changed. Command is enabled = " & Enable
    Elseif Command=&h00000002 Then 'Command=CSC_NAVIGATEBACK
        MsgBox "Back button has changed. Command is enabled = " & Enable
    End If
End Sub

Пример обработки события NewWindow2:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Document.Write "<A HREF='www.ya.ru'>www.ya.ru</A>"
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    WScript.Quit
End Sub
'********************************************************************
Sub IE_NewWindow2(ByRef ppDisp, ByRef Cancel)
    MsgBox "Навигация отменена."
    Cancel = True
End Sub

Пример обработки событий StatusTextChange и TitleChange:

Set objIE = WScript.CreateObject("InternetExplorer.Application", "IE_")
objIE.Navigate "about:blank"
While objIE.Busy
    Wscript.Sleep 200
Wend
objIE.Visible = 1

'Бесконечное ожидание; скрипт завершится только тогда,
'когда сработает событие OnQuit.
While 0=0
    WScript.Sleep 1000
Wend
'********************************************************************
Sub IE_OnQuit()
    WScript.Quit
End Sub
'********************************************************************
Sub IE_StatusTextChange(ByVal sText)
    MsgBox "StatusTextChange event!" & vbCrLF & sText
End Sub
'********************************************************************
Sub IE_TitleChange(ByVal sText)
    MsgBox "TitleChange event!" & vbCrLF & sText
End Sub

Составление - Людоговский Александр

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.