自动检测代理设置,如果没有设置在系统上



这里已经有一些关于查找系统默认值和使用它们的问题。这些帮助我的应用程序提供了一个"使用系统默认值"选项,但我偶尔会遇到一些用户,他们甚至不知道他们的系统是在代理服务器之后(可能是IT人员能力较差),所以他们可能甚至没有在他们的系统上设置任何代理。

我如何去自动检测代理(如果可能的话)?我还没有找到一个可以充分帮助的帖子,MDSN也没有多大帮助…

如果我理解正确,您想检查代理设置是否启用,并获得它的设置。你可以使用下面的代码(VB.Net),它可以很容易地转换为c#,启用/禁用代理并设置代理值。一般来说,您可以使用注册表来实现它:

   Private Sub Enable_Proxy(ByVal Proxyset As String)
       Dim regkeyProxy_Enable As RegistryKey
       'Registry Key Location
       regkeyProxy_Enable = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
       'Change The Proxy Enable value
       regkeyProxy_Enable.SetValue("ProxyEnable", 1, RegistryValueKind.DWord)
       'Set the proxy server value
       regkeyProxy_Enable.SetValue("ProxyServer", Proxyset, RegistryValueKind.String)
   End Sub
   Private Sub Disable_Proxy()
       Dim regkeyProxy_Enable As RegistryKey
       regkeyProxy_Enable = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Internet Settings", True)
       'Disable The proxy
       regkeyProxy_Enable.SetValue("ProxyEnable", 0, RegistryValueKind.DWord)
   End Sub

您可以使用这个示例并根据您的需要修改它。请注意,以下键代表Windows机器上的代理设置,如果我没记错的话,它适用于IE和Chrome,我记得,Firefox使用自己的设置。

Liron

最新更新