Программно измените прокси-сервер Internet Explorer, включая пароль, без перезапуска ie в vb.net

#vb.net #internet-explorer #proxy

#vb.net #internet-explorer #прокси

Вопрос:

Возможно ли это вообще?

Я знаю, что способ сделать это — изменить реестр. Однако должен быть лучший способ.

Общий параметр EnableProxy1()

 Dim regKey As Microsoft.Win32.RegistryKey

regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SoftwareMicrosoftWindowsCurrentVersionInternet 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

Общий вспомогательный параметр DisableProxy() Отключает RegKey как Microsoft.Win32.RegistryKey

 regKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SoftwareMicrosoftWindowsCurrentVersionInternet Settings", True)

regKey.SetValue("ProxyEnable", False, Microsoft.Win32.RegistryValueKind.DWord)

regKey.Close()
  

End Sub

У этого есть 2 слабых места

  1. Мне нужно перезапустить Internet Explorer
  2. Мне нужно изменить имя пользователя и пароль прокси-сервера, напрямую управляя Windows.

Я хочу метод, который лучше и прямой. Есть способы?

Комментарии:

1. Общесистемный прокси-сервер? почему в настоящее время делает vb.net требуется перезапуск?

2. Прокси-сервер ie. ie должен быть перезапущен.

3. Извините, заголовок должен был быть программным изменением прокси Internet Explorer, включая пароль, без перезапуска IE в vb.net

Ответ №1:

 Imports Microsoft.Win32
Public Class ProxySetting
    Public Function IsProxyEnabled() As Boolean
        Try
            Dim Regs As RegistryKey = Registry.CurrentUser.CreateSubKey("SoftwareMicrosoftWindowsCurrentVersionInternet 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("SoftwareMicrosoftWindowsCurrentVersionInternet 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("SoftwareMicrosoftWindowsCurrentVersionInternet 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("SoftwareMicrosoftWindowsCurrentVersionInternet 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
  

Комментарии:

1. Добавьте некоторое объяснение.