繁体   English   中英

从Excel VBA切换Internet Explorer代理

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM