загрузка скриптовых файлов под Windows

Я собираюсь написать скрипт для загрузки некоторого количества файлов под Windows XP. Все машины, на которых будет запускаться скрипт, находятся за прокси-сервером, а настройки прокси-сервера вводятся в конфигурацию IE.

Что мне пришло в голову, так это либо как-то вызвать IE из командной строки, и с помощью загрузочных файлов его конфигурации мне понадобится. Возможно ли даже использовать некоторые методы оболочки?

Другой вариант - использовать wgetпод Win, но мне нужно передать ему настройки прокси. Как восстановить эти настройки из конфигурации IE?

10.12.2008 14:48:47
3 ОТВЕТА
РЕШЕНИЕ

В принципе, я бы пошел на wgetподход, а не использовать IEкаким-то образом.

Путь к скрипту конфигурации хранится в реестре в HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings. Это двоичное значение, адрес скрипта начинается с позиции 0x18 и кажется ASCII-кодированным.

Чего я не знаю, так это того, wgetможет ли скрипт оценить сам по себе, или вам нужно явно разобрать его в вашем скрипте, который затем передаст адрес прокси wget.

1
26.05.2009 09:00:43

Я согласен с Treb, вы должны предпочесть использовать wget, а путь к настройкам прокси можно найти в "HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ProxyServer"

1
10.12.2008 15:07:13
Путь в указанном вами реестре не существует на моем компьютере - возможно, это зависит от версии IE, я использую IE 6.0
Treb 10.12.2008 16:35:03
Привет, у меня IE 7 на моей машине, но я смутно помню, как использовал этот путь на машине с IE 6.
Autodidact 13.12.2008 11:13:38
подождите, я сделал это сообщение с другого компьютера, и он имеет IE 6
Autodidact 13.12.2008 11:14:44

Используйте JScript:

function ie_NavigateComplete2(pDisp, url)
{
    // output for testing
    WScript.Echo('navigation to', url, 'complete');
    // clear timer
    t = 0;
}

// create ActiveX object
var ie = WScript.CreateObject('InternetExplorer.Application', 'ie_');
ie.Height = 200;
ie.Width = 200;
ie.Visible = true;
ie.Navigate('http://www.example.com/worddoc.doc');
var t = (+new Date()) + 30000;
// sleep 1/2 second for 30 seconds, or until NavigateComplete2 fires
while ((+new Date()) < t)
{
    WScript.Sleep(500);
}
// close the Internet Explorer window
ie.Quit();

Затем вы вызываете его с помощью start download.jsили cscript download.js. Вы можете сделать что-то подобное с VBScript, но мне удобнее в JScript.

Обратите внимание, что это работает ТОЛЬКО, если целью ie.Navigate()является файл, который запрашивает Открыть / Сохранить / Отменить. Если это тип файла, такой как PDF, который открывается внутри браузера, то IE просто откроет ресурс, а затем закроет окно, вероятно, не то, что вам нужно. Очевидно, вы можете настроить скрипт в соответствии со своими потребностями, например, не закрывая окно IE после завершения загрузки, или увеличивая окно и т. Д.

См. Документацию по объекту InternetExplorer для получения дополнительной информации о доступных событиях, методах и свойствах.

Используя этот метод, вам не нужно беспокоиться о чтении настроек прокси для Internet Explorer, они будут использоваться, потому что вы используете Internet Explorer для загрузки.

1
10.12.2008 15:16:35