• Как применить настройки прокси-сервера через реестр в С#?

    Kot_Matrosskin
    @Kot_Matrosskin Автор вопроса
    Спасибо, поправил код с использованием wininet.dll

    public partial class Form1 : Form
        {
    
            [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;
    
            private void SetProxyON()
            {
                using(RegistryKey keyProxyON = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true))
                {
                    keyProxyON.SetValue("ProxyEnable", 1);
                    keyProxyON.CreateSubKey("ProxyServer");
                    keyProxyON.SetValue("ProxyServer",
                        $"{SettingFromFile[5][0]}.{SettingFromFile[5][1]}.{SettingFromFile[5][2]}." +
                        $"{SettingFromFile[5][3]}:{SettingFromFile[6][0]}");
                    if (!keyProxyON.GetValueNames().Contains("AutoDetect"))
                        keyProxyON.CreateSubKey("AutoDetect");
                    keyProxyON.SetValue("AutoDetect", 0);
                    keyProxyON.Close();
                    InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
                    InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
    
                }
            }
            private void SetProxyOFF()
            {
                using (RegistryKey keyProxyOFF = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true))
                {
                    keyProxyOFF.SetValue("ProxyEnable", 0);
                    if (!keyProxyOFF.GetValueNames().Contains("AutoDetect"))
                        keyProxyOFF.CreateSubKey("AutoDetect");
                    keyProxyOFF.SetValue("AutoDetect", 1);
                    keyProxyOFF.Close();
                    InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
                    InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
    
                }
            }
    
        }
  • Как применить настройки прокси-сервера через реестр в С#?

    Kot_Matrosskin
    @Kot_Matrosskin Автор вопроса
    Спасибо, использовал подключение wininet.dll, изменения обновляются в системе.
    [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;
  • Как применить настройки прокси-сервера через реестр в С#?

    Kot_Matrosskin
    @Kot_Matrosskin Автор вопроса
    Ок, спасибо! Буду копать в сторону wininet.dll