2011-04-24 50 views
0

它甚至有可能吗?以编程方式更改包含密码而不重新启动的Internet Explorer代理(即在vb.net中)

我知道这样做的一种方法是更改​​注册表。但是,必须有更好的方法。

共享子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() 

结束子

共享子DisableProxy() 昏暗REGKEY作为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() 

结束子

否则这有两个弱点

  1. 我需要重新启动Internet Explorer
  2. 我需要通过直接操作窗口更改代理的用户名和密码。

我想要一个更好更直接的方法。无论如何?

+0

系统范围的代理?为什么目前vb.net需要重启? – 2011-04-24 12:36:59

+0

即代理。 ie必须重新启动。 – 2011-04-25 14:45:06

+0

对不起,标题应该是编程方式更改Internet Explorer代理包括密码无需重新启动IE浏览器在vb.net – 2011-04-25 14:45:31

回答

1
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 
+0

添加一些解释。 – ketan 2016-04-05 06:24:43

相关问题