0

我将被迫编写一个脚本来在 Windows XP 下下载一些文件。将运行脚本的机器都在代理之后,并且代理设置输入到 IE 配置中。

我想到的是从命令行以某种方式调用 IE,并使用我需要的配置下载文件。甚至可以使用一些shell技术吗?

其他选项是wget在 Win 下使用,但我需要将代理设置传递给它。如何从 IE 配置中恢复这些设置?

4

3 回答 3

1

原则上,我会采用这种wget方法,而不是以IE某种方式使用。

配置脚本的路径存储在注册表中HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings。它是一个二进制值,脚本地址从位置 0x18 开始,看起来是 ASCII 编码的。

我不知道是否wget可以自行评估脚本,或者您是否需要在脚本中显式解析它,然后将代理地址传递给wget.

于 2008-12-10T14:59:09.607 回答
1

我同意 Treb,您应该更喜欢使用 wget,代理设置的路径可以在“HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer”中找到

于 2008-12-10T15:07:13.537 回答
1

使用 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.jsor调用它cscript download.js。你可以用 VBScript 做类似的事情,但我更喜欢 JScript。

请注意,这仅在目标ie.Navigate()是提示打开/保存/取消的文件时才有效。如果是在浏览器中打开的文件类型(例如 PDF),那么 IE 将简单地打开资源,然后关闭窗口,这可能不是您想要的。显然你可以根据自己的需要调整脚本,比如下载完成后不关闭 IE 窗口,或者将窗口放大等。

有关可用事件、方法和属性的更多信息,请参阅InternetExplorer 对象文档。

使用这种方法,您不必担心读取 Internet Explorer 的代理设置,因为您正在使用 Internet Explorer 进行下载,所以它们将被使用。

于 2008-12-10T15:10:53.157 回答