Встала такая задача:
Имеется список URL, нужно сохранить страницы соответствующие URL-ам как веб-архивы (MHT).
Так как через использованием CDO веб страница сохраняется неполностью (вместо картинок и стилей - ссылки), было решено использовать для этих целей AutoIt и IE8.
При сохранении через IE, веб-архив сохраняется полностью.
Допустим:
1. Можно передать URL в качестве параметра скрипту на AutoIt.
2. Скрипт открывает URL в скрытом окне IE
3. Скрипт сохраняет веб-архив
4. Скрипт закрывает окно (или возвращает HWND для повторного использования)
Подскажите, как можно при помощи скрипта в диалоговом окне "Сохранить как...":
1. Установить путь к папке по умолчанию (допустим, этот путь может передаваться в скрипт в качестве второго параметра)
2. Выбрать тип файла в комбобоксе диалогового окна.
И как все это можно проделать в скрытом окне?
P.S. IE8 - русский
Имеется список URL, нужно сохранить страницы соответствующие URL-ам как веб-архивы (MHT).
Так как через использованием CDO веб страница сохраняется неполностью (вместо картинок и стилей - ссылки), было решено использовать для этих целей AutoIt и IE8.
При сохранении через IE, веб-архив сохраняется полностью.
Допустим:
1. Можно передать URL в качестве параметра скрипту на AutoIt.
2. Скрипт открывает URL в скрытом окне IE
3. Скрипт сохраняет веб-архив
4. Скрипт закрывает окно (или возвращает HWND для повторного использования)
Подскажите, как можно при помощи скрипта в диалоговом окне "Сохранить как...":
1. Установить путь к папке по умолчанию (допустим, этот путь может передаваться в скрипт в качестве второго параметра)
2. Выбрать тип файла в комбобоксе диалогового окна.
И как все это можно проделать в скрытом окне?
Код:
#include <IE.au3>
Opt("WinTitleMatchMode", 2)
_IECreate ("http://www.yandex.ru", 0, 1, 1, 1)
$win_handle = WinGetHandle("Windows Internet Explorer", "Яндекс")
_SetKeyboardLayout($win_handle, "00000419")
Send("{ALTDOWN}{ALTUP}")
Send("ф")
Send("х")
$sSaveAsWindow = "Сохранение веб-страницы"
WinWait($sSaveAsWindow,"")
If Not WinActive($sSaveAsWindow,"") Then WinActivate($sSaveAsWindow,"")
WinWaitActive($sSaveAsWindow,"")
ControlSetText ($sSaveAsWindow, "", "Edit1", "Test")
ControlClick ($sSaveAsWindow, "", "Button2")
; переключение раскладки клавиатуры
Func _SetKeyboardLayout($hWnd, $sLayoutID)
Local $ret = DllCall("user32.dll", "long", "LoadKeyboardLayout", "str", $sLayoutID, "int", 0)
DllCall("user32.dll", "int", "SendMessage", "hwnd", $hWnd, "int", 0x50, "int", 1, "int", $ret[0])
EndFunc
P.S. IE8 - русский