Функция _IECreate

 ↑  ←  Описание функции


_IECreate

Создаёт окно браузера Internet Explorer.

#include <IE.au3>
_IECreate([$s_Url = "about:blank" [, $f_tryAttach = 0 [, $f_visible = 1 [, $f_wait = 1 [, $f_takeFocus = 1]]]]])

Параметры

$s_Url [необязательный] Указывает URL, чтобы перейти к нему в созданном окне
$f_tryAttach [необязательный] Указывает, пытаться ли присоединиться к существующему окну
0 = (по умолчанию) Не пытаться присоединиться
1 = Пытаться присоединиться к существующему окну
$f_visible [необязательный] Отображать ли окно браузера
0 = Скрывать окно браузера
1 = (по умолчанию) Отображать окно браузера
$f_wait [необязательный] Указывает, ожидать ли загрузки страницы перед возвратом
0 = Возвратиться немедленно, не ожидая загрузки страницы
1 = (по умолчанию) Ожидать завершения загрузки страницы перед возвратом
$f_takeFocus [необязательный] specifies whether to bring the attached window to focus
0 = Do not bring window into focus
1 = (по умолчанию) bring window into focus

Возвращаемое значение

Успех:Возвращает an object variable pointing to an InternetExplorer.Application object
Ошибка:Возвращает 0 и устанавливает @error
@error:0 ($_IEStatus_Success) = Нет ошибок
1 ($_IEStatus_GeneralError) = Общая ошибка
3 ($_IEStatus_InvalidDataType) = Неверный тип данных
4 ($_IEStatus_InvalidObjectType) = Неверный тип объекта
6 ($_IEStatus_LoadWaitTimeout) = Тайм-аут ожидания загрузки
8 ($_IEStatus_AccessIsDenied) = Отказано в доступе
9 ($_IEStatus_ClientDisconnected) = Клиент отключен
@extended:Set to true (1) or false (0) depending on the success of $f_tryAttach

Примечания

When using tryAttach, a No Match error will be displayed to the console from _IEAttach(). Это можно контролировать с помощью _IEErrorNotify().

When opening a local HyperTextApplication (.hta) file, Internet Explorer will open a new browser process for it that will not be accessible through the object variable returned by _IECreate(). To control this new browser you must use _IEAttach() with the "embedded" option.

Новая безопасность в Windows Vista принуждает создание нового окна браузера, когда браузер получает указание перейти по URL в другой зоне безопасности. Это также происходит с начальным созданием и переходом начатым с _IECreate(). Новое окно является новым экземпляром браузера и предыдущая переменная, содержащая объект браузера больше не указывает на него. Есть несколько обходных путей:
1) Добавить #RequireAdmin в свой скрипт (это требуется, даже если учетная запись входит в группу администраторов и запрашивает учетные данные при необходимости.)
2) Используйте _IEAttach() для подключения к новому окну браузера
3) Добавить веб-сайт в зону "Надёжные узлы" в IE
4) Выключите "Защищенный режим" в IE
5) Отключите UAC. Необходимо соблюдать осторожность, понимая последствия отключения функций безопасности IE при доступе к ненадёжным сайтам.

См. также

_IEAttach, _IECreateEmbedded, _IEQuit, _IENavigate, _IELoadWait

Пример

#include <IE.au3>

; ====================================
; Пример 1 - Создаёт окно браузера и переходит на сайт
Local $oIE = _IECreate("www.autoitscript.com")

; ====================================
; Пример 2 - Создаёт новое окно браузера, переходя на 3 разных URL-адресов
;               присоединиться к существующему окну ($f_tryAttach = 1)
;               не ожидать загрузки страницы ($f_wait = 0)
_IECreate("www.autoitscript.com", 1, 1, 0)
_IECreate("yandex.ru/yandsearch?text=AutoIt", 1, 1, 0)
_IECreate("google.com/search?q=AutoIt&sitesearch=autoit-script.ru", 1, 1, 0)

; ====================================
; Пример 3 - Попытка открыть в существующем браузере заданный URL-адрес
;               Или создаёт новое окно, если оно не существует и открывает URL-адрес
$oIE = _IECreate("www.autoitscript.com", 1)
; Проверьте возвращаемый @extended, чтобы убедится, что URL открыт в текущем окне
If @extended Then
    MsgBox(4096, "", "Открыт в текущем окне браузера")
Else
    MsgBox(4096, "", "Открыто в новом окне браузера")
EndIf

; ====================================
; Пример 4 - Создаёт пустое окно браузера и заполняет его с пользовательскими HTML-кодом
$oIE = _IECreate()
Local $sHTML = "<h1><font color=#FF0000>Привет мир!</font></h1>"
_IEBodyWriteHTML($oIE, $sHTML)

; ====================================
; Пример 5 - Запускает новый экземпляр iexplore.exe
;               Часто это необходимо для того, чтобы получить новый контекст сессии куков (cookie)
;               (сессии куков (cookie) являются общими для всех экземпляров браузера того же iexplore.exe)
ShellExecute("iexplore.exe", "about:blank")
WinWait("Пустая страница", '', 3)
$oIE = _IEAttach("about:blank", "url")
_IELoadWait($oIE)
_IENavigate($oIE, "www.autoitscript.com")