Piszę aplikację WinForm (C# .NET), aby zmienić ustawienia proxy systemu Windows globalne (znane również jako Internet Explorer).Jak zmienić globalny serwer proxy systemu Windows przy użyciu języka C# .NET za pomocą funkcji "Immediate Effect"
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ę w dziwny sposób. Testowałem to przy użyciu dwóch przeglądarek
- Google Chrome:
Kiedy zmienić/wyłączyć proxy podczas Chrome jest uruchomiony. Chrome nadal używa poprzedniego serwera proxy. Zmiana nie wpływa na proces. Ale kiedy I JUST openInternet Options(inetcpl.cpl) > Connections > LAN Settings
. Poprzednia zmiana proxy jest teraz rozważana. Kiedy powiedziałem: Po prostu otwórz Naprawdę mam na myśli Po prostu otwórz. Mam na myśli, nie edytując ani nie klikając żadnych innych przycisków. Domyślam się, że to globalny serwer proxy jest naprawdę się zmienia (czytając z rejestru) & Google Chrome od razu przynosi efekt.
- Internet Explorer 8:
Case Internet Explorer jest znacznie gorzej. Po zmianie/wyłączeniu proxy przy użyciu mojej aplikacji, podczas gdy IE działa & Nawet po przejściu do "Opcje internetowe (inetcpl.cpl)> Połączenia> Ustawienia sieci LAN" Działający serwer proxy IE nie zostaje dotknięty. Nawet jeśli otworzę nowy link w nowej karcie. Musiałem zrestartować IE, aby ta zmiana została włączona.
Zachowanie chcę jest, że ilekroć zmienić ustawienia proxy w mojej aplikacji, wszystkie przeglądarki, które używają globalny serwer proxy (niezależnie od tego, czy są one uruchomione lub nie) powinny natychmiast zawierają zmiany w ustawieniach.
Jak mogę to osiągnąć?
spojrzeć na ta strona. http://stackoverflow.com/questions/5216323/setting-ie-proxy-by-c-sharp –