Programatically change Internet Explorer Proxy Including the Password Without Restarting ie in vb.net
Is it even possible?
I know a way to do so is to change the registry. However there has to be a better way.
Shared Sub EnableProxy1()
Dim regKey As Microsoft.Win32.RegistryKey
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
regKey.SetValue("ProxyEnable", True, Microsoft.Win32.RegistryValueKind.DWord)
regKey.SetValue("ProxyServer", proxyhandler.proxyFedtoInternetExplorer, Microsoft.Win32.RegistryValueKind.String)
regKey.SetValue("ProxyOverride", "<local>", Microsoft.Win32.RegistryValueKind.String)
regKey.Close()
End Sub
Shared Sub DisableProxy() Dim regKey As Microsoft.Win32.RegistryKey
regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
regKey.SetValue("ProxyEnable", False, Microsoft.Win32.RegistryValueKind.DWord)
regKey.Close()
End Sub
Doing this has 2 weaknesses
- I need to restart internet explorer
- I need to change the username and password of the proxy by manipulating windows directly.
I want a method that's bette开发者_如何学Gor and direct. Any ways?
Imports Microsoft.Win32
Public Class ProxySetting
Public Function IsProxyEnabled() As Boolean
Try
Dim Regs As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", RegistryKeyPermissionCheck.ReadWriteSubTree)
If Regs.GetValue("ProxyEnable") <> Nothing Then
If Regs.GetValue("ProxyEnable").ToString() = "0" Then
Return False
Else
Return True
End If
Else
Return False
End If
Catch ex As Exception
Return False
End Try
End Function
Public Function GetProxyServer() As String
Try
Dim Regs As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", RegistryKeyPermissionCheck.ReadWriteSubTree)
If Regs.GetValue("ProxyServer") <> Nothing Then
Return Regs.GetValue("ProxyServer").ToString()
Else
Return ""
End If
Catch ex As Exception
Return ""
End Try
End Function
Public Sub DisableProxy()
Dim regKey As RegistryKey
Try
regKey = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
regKey.SetValue("ProxyEnable", False, RegistryValueKind.DWord)
regKey.Close()
Catch ex As Exception
End Try
End Sub
Public Sub SetProxy(ByVal ServerName As String, ByVal port As Integer)
Try
Dim regkey1 As RegistryKey
regkey1 = Registry.CurrentUser.CreateSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
regkey1.SetValue("ProxyServer", ServerName + ":" + port.ToString(), RegistryValueKind.Unknown)
regkey1.SetValue("ProxyEnable", True, RegistryValueKind.DWord)
regkey1.Close()
Catch ex As Exception
End Try
End Sub
End Class
精彩评论