Jak zmienić Global Windows Proxy przy użyciu C # .NET z `Immediate Effect`

Piszę aplikację Winform (C # .NET), aby zmienić ustawienia proxy Windows 'Global (aka Internet Explorer).

Używam tego.

RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
registry.SetValue("ProxyEnable", 1);
registry.SetValue("ProxyServer", "127.0.0.1:8080");

Ale zachowuje się dziwnie. Przetestowałem to za pomocą dwóch przeglądarek

Google Chrome:

Kiedy zmieniam / wyłączam proxy, gdy Chrome jest uruchomiony. Chrome nadal używa poprzedniego serwera proxy. Zmiana nie wpływa na jej proces. Ale kiedy jaPo prostu otwórz Internet Options(inetcpl.cpl) > Connections > LAN Settings. Poprzednia zmiana proxy jest teraz rozważana. Kiedy powiedziałemPo prostu otwórz Naprawdę mam na myśliPo prostu otwórz. Mam na myśli to, że nie edytuję ani nie klikam żadnych innych przycisków. Myślę, że to jest globalny proxynaprawdę zmiana (przez odczyt z rejestru) i Google Chrome natychmiast zaczyna działać.

Internet Explorer 8:

Sprawa z Internet Explorerem jest znacznie gorsza. Po zmianie / wyłączeniu serwera proxy przy użyciu mojej aplikacji, gdy IE działa i nawet po przejściu do „Opcje internetowe (inetcpl.cpl)> Połączenia> Ustawienia Lan” Działający serwer IE nie ulega zmianie. Nawet jeśli otworzę nowy link w nowej karcie. Musiałem ponownie uruchomić IE, aby wprowadzić tę zmianę.

Zachowanie, którego chcę, polega na tym, że za każdym razem, gdy zmieniam ustawienia proxy w mojej aplikacji, wszystkie przeglądarki używające globalnego proxy (niezależnie od tego, czy działają, czy nie) powinnynatychmiast uwzględnij zmianę ustawień.

Jak mogę to osiągnąć?

questionAnswers(1)

yourAnswerToTheQuestion