[英]Toggle Internet Explorer Proxy from Excel VBA
通过转到Internet options
> Connections
> LAN settings
> Proxy Server
> Use a proxy server for your LAN
可以在Internet Explorer上切换Internet代理 。
当我这样做时,它会切换注册表项HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\ProxyEnable
。
问题在于,这不仅是因为当我使用regedit
手动更改值时,它不会切换IE上的代理或代理选项。
我正在尝试使用VBA代码从Excel切换它。
Private Sub DisableProxy()
Dim Shell As New WshShell
Shell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", 0, "REG_DWORD"
End Sub
我尝试使用一个程序来监视注册表更改,但它只显示一个键。
如何从Excel VBA正确切换代理?
在此答案的帮助下,我发现我必须告诉IE的配置设置已更改,但代码不在VBA中,因此我进行了查找并找到了该站点 。
因此,更改代码后,它就可以工作。
' Reference:
' Windows Script Host Object Model
Private Declare Function InternetSetOptionA Lib "wininet.dll" (ByVal hInternet As Long, ByVal lOption As Long, ByVal sBuffer As String, ByVal lBufferLength As Long) As Integer
Private Sub ToggleProxy(ByVal Toggle As Integer)
Dim Shell As WshShell
Const INTERNET_OPTION_SETTINGS_CHANGED As Long = 39
If (Toggle <> 0 And Toggle <> 1) Then Exit Sub
Set Shell = New WshShell
Shell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable", Toggle, "REG_DWORD"
InternetSetOptionA 0, INTERNET_OPTION_SETTINGS_CHANGED, 0, 0
End Sub
Private Sub Main()
ToggleProxy Toggle:=0 ' Disable
ToggleProxy Toggle:=1 ' Enable
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.