I’m writing an winforms app that needs to set internet explorer’s proxy settings and then open a new browser window. At the moment, I’m applying the proxy settings by going into the registry:
RegistryKey registry = Registry.CurrentUser.OpenSubKey('Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings', true); registry.SetValue('ProxyEnable', 1); registry.SetValue('ProxyServer', '127.0.0.1:8080');
Is going into the registry the best way to do this, or is there a more recommended approach? I’d like to avoid registry changes if there’s an alternative solution.
This depends somewhat on your exact needs. If you are writing a C# app and simply want to set the default proxy settings that your app will use, use the class System.Net.GlobalProxySelection (http://msdn.microsoft.com/en-us/library/system.net.globalproxyselection.aspx). You can also set the proxy for any particular connection with System.Net.WebProxy (http://msdn.microsoft.com/en-us/library/system.net.webproxy.aspx).
If you actually want to update the proxy settings in the registry, I believe that you’ll need to use P/Invoke to call the WinAPI function WinHttpSetDefaultProxyConfiguration (http://msdn.microsoft.com/en-us/library/aa384113.aspx).