使用VBscript设置IE代理值

时间:2013-01-10 06:08:19

标签: browser vbscript proxy

我写了一小段vb脚本来设置代理设置


'begin script
Option Explicit
Dim valUserIn
Dim objShell, RegLocate
Set objShell = WScript.CreateObject("WScript.Shell")
RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
objShell.RegWrite RegLocate,"0","REG_DWORD"
WScript.Sleep(5000)
valUserIn = Inputbox("Enter the Proxy server you want to use.","Proxy Server Required","proxygate.mydomain.com:8080")
if valUserIn = "" then
    RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
    objShell.RegWrite RegLocate,"0","REG_DWORD"
    'MsgBox "No proxy mode"
else
    RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer"
    objShell.RegWrite RegLocate,valUserIn,"REG_SZ"
    RegLocate = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable"
    objShell.RegWrite RegLocate,"1","REG_DWORD"
    'MsgBox "Proxy mode: " & valUserIn
end if
WScript.Quit
'end script

现在脚本正常运行,并且可以设置注册表值。如果我使用Internet Explorer,则没有问题,即浏览器使用正确的代理设置(如输入对话框中输入的,或者如果取消则为“无代理”)服务器。

然而,当浏览器行为奇怪时,使用Firefox或Chrome(尝试使用不同版本)。有时使用正确的代理服务器,但有时浏览器会显示代理服务器拒绝连接的消息(基本上它无法访问代理服务器)。此外,此行为是随机的,它不是基于浏览器的空闲时间或请求/点击次数。

我所做的另一项分析是,每当发生这种情况时,如果我打开Internet Explorer的选项对话框并单击LAN设置(可以更改代理),我会注意到代理设置已正确设置。如果我只是单击取消并退出对话框,浏览器就会开始使用正确的设置。

有关Internet Explorer的功能以及我们如何在脚本中自动执行该功能的任何提示????

谢谢和问候

1 个答案:

答案 0 :(得分:1)

不同的浏览器在不同的地方存储代理信息。

  1. IE将其存储在注册表中。
  2. firefox将其存储在(某些文件中)%appdata%\ mozilla \ firefox \ profiles \
  3. chrome也使用与IE,AFAIK相同的位置。
  4. 但是,可能是其他浏览器中的一个选项,我们可以要求它使用系统级代理(在IE中设置)。 FF的linux版本有这个。
    即使这样,您也需要重新启动浏览器,以便它再次读取代理服务器值。通常它是在启动时读取的。仅使用对话框手动更新。浏览器程序员通常不希望用户使用脚本更改代理。 (但是,我们这样做:-))