Я отвечаю, потому что мне не разрешают прокомментировать ответы. Я хотел бы указать на разницу между манипулированием реестром и использованием InternetSetOptionAPI. Если вы напрямую перепутаете реестр, чтобы изменить настройки прокси-сервера, тогда браузеры, такие как Chrome, которые зависят от конфигурации прокси-сервера WinInet, сразу не будут получать новые настройки, но если вы измените использование InternetSetOptionAPI, новые настройки будут использоваться немедленно. Это мой опыт.Я не вдавался в подробности, чтобы узнать, что можно сделать, чтобы настроить параметры после работы с реестром.
EDIT: Для того, чтобы обновить настройки прокси-сервера WinInet вы можете сделать простой PInvoke из InternetSetOption API следующим
internal class InternetSetOptionApi
{
[DllImport("wininet.dll")]
public static extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr lpBuffer, int dwBufferLength);
public const int INTERNET_OPTION_SETTINGS_CHANGED = 39;
public const int INTERNET_OPTION_REFRESH = 37;
public static void RefreshWinInetProxySettings()
{
// These lines implement the Interface in the beginning of program
// They cause the OS to refresh the settings, causing IP to realy update
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
}
}
Источник: Programmatically Set Browser Proxy Settings in C#
Спасибо за информацию о 'AutoConfigUrl'. Это была одна вещь, которую я искал. Я обнаружил, как отключить/включить другой флажок (* Автоматически определять настройки *), прочитав комментарий [Andrew Swan на вопрос SuperUser.com, который вы связали] (http://superuser.com/questions/79703/disable-automatically -detect-настройка-в-е-прокси-конфигурация/79718 # комментарий-217210). В основном это означает, что вычесть 8 из девятого байта «HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ Connections | DefaultConnectionSettings', чтобы отключить эту опцию. –