我正在编写一个Winforms应用程序,该应用程序需要设置Internet Explorer的代理设置,然后打开一个新的浏览器窗口。此刻,我通过进入注册表来应用代理设置:
RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true); registry.SetValue("ProxyEnable", 1); registry.SetValue("ProxyServer", "127.0.0.1:8080");
是进入注册表的 最佳 方法,还是有更推荐的方法?如果有替代解决方案,我想避免注册表更改。
这在某种程度上取决于您的确切需求。如果您正在编写C#应用程序,并且只想设置应用程序将使用的默认代理设置,请使用System.Net.GlobalProxySelection类(http://msdn.microsoft.com/zh- cn/library/system.net .globalproxyselection.aspx)。您还可以为与System.Net.WebProxy(http://msdn.microsoft.com/zh- cn/library/system.net.webproxy.aspx)的任何特定连接设置代理。
如果您实际上想更新注册表中的代理设置,我相信您将需要使用P / Invoke来调用WinAPI函数WinHttpSetDefaultProxyConfiguration(http://msdn.microsoft.com/zh- cn/library/aa384113。 aspx)。