Browser 使用VBscript设置IE代理值
我已经写了一小段vb脚本来设置代理设置Browser 使用VBscript设置IE代理值,browser,vbscript,proxy,Browser,Vbscript,Proxy,我已经写了一小段vb脚本来设置代理设置 现在脚本可以正常运行,并且可以设置注册表值。如果我使用Internet Explorer,则不存在任何问题,即浏览器使用了正确的代理设置(如在输入对话框中输入的,或“无代理”(如果取消)服务器 但是,当使用Firefox或Chrome时(使用不同的版本进行了尝试),浏览器的行为会异常。有时会使用正确的代理服务器,但有时浏览器会显示一条消息,表示代理服务器拒绝连接(基本上无法访问代理服务器)。此外,这种行为是随机的,它不是基于浏览器的空闲时间或请求/单击
现在脚本可以正常运行,并且可以设置注册表值。如果我使用Internet Explorer,则不存在任何问题,即浏览器使用了正确的代理设置(如在输入对话框中输入的,或“无代理”(如果取消)服务器 但是,当使用Firefox或Chrome时(使用不同的版本进行了尝试),浏览器的行为会异常。有时会使用正确的代理服务器,但有时浏览器会显示一条消息,表示代理服务器拒绝连接(基本上无法访问代理服务器)。此外,这种行为是随机的,它不是基于浏览器的空闲时间或请求/单击的数量 我所做的另一个分析是,每当出现这种情况时,如果我打开internet explorer的“选项”对话框并单击LAN设置(可以更改代理),我会注意到代理设置设置是正确的。如果我只需单击Cancel并退出对话框,浏览器就会开始使用正确的设置 关于Internet explorer的功能以及如何在脚本中实现自动化的任何提示
感谢并问候不同的浏览器在不同的位置存储代理信息
即使这样,您也需要重新启动浏览器,以便它再次读取代理服务器值。通常在启动时读取,仅使用对话框手动更新。浏览器程序员通常不希望用户使用脚本更改代理。(不过,我们还是要这样做:-)感谢Anish分享信息。Firefox的设置设置为“使用系统代理”,我相信它指向IE设置。此外,代理是在任何浏览器运行之前设置的(启动后延迟5秒),因此我们可以排除在设置代理后重新启动浏览器的可能性。有趣的是,一旦查看了代理的IE设置(未做任何更改),浏览器就会开始指向正确的设置,之后一切都会正常工作。我认为Windows在内存中存储了一些指示要使用的代理设置的内容。有什么想法吗@AnishSane?嗯。。。看起来代理信息已缓存。。。应该有一些windows操作系统级别的调用,这将模拟刷新该缓存。但是,我没有意识到这一点。考虑到这一点,您可以跟踪
control inetcpl.cpl
…用新的代理设置刷新页面,而不关闭IE并再次运行以获取新的代理设置。您好,Zaka,当脚本运行时(在windows登录时),没有浏览器正在运行。浏览器的启动要晚得多。虽然这不能被标记为答案,但是firefox和chrome的干净安装修复了这个问题。
'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