Tôi đang viết ứng dụng của Winform (C# .NET) để thay đổi cài đặt proxy toàn cầu của Windows (aka Internet Explorer).Cách thay đổi Proxy Windows toàn cầu bằng cách sử dụng C# .NET với `Hiệu ứng ngay lập tức '
Tôi đang sử dụng tính năng này.
RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
registry.SetValue("ProxyEnable", 1);
registry.SetValue("ProxyServer", "127.0.0.1:8080");
Nhưng hoạt động của nó theo cách lạ thường. Tôi đã thử nghiệm này sử dụng hai trình duyệt
- Google Chrome:
Khi tôi thay đổi/Disable proxy khi Chrome đang chạy. Chrome vẫn đang sử dụng proxy trước đó. Sự thay đổi không ảnh hưởng đến quá trình của nó. Nhưng khi tôi CHỈ, hãy mởInternet Options(inetcpl.cpl) > Connections > LAN Settings
. Thay đổi proxy trước đó hiện được xem xét. Khi tôi nói Chỉ cần mở Tôi thực sự có nghĩa là Chỉ cần mở. Ý tôi là, không chỉnh sửa hoặc nhấp vào bất kỳ nút nào khác. Tôi đoán, sau đó proxy toàn cầu là thực sự bị thay đổi (bằng cách đọc từ sổ đăng ký) & Google Chrome ngay lập tức có hiệu lực.
- Internet Explorer 8:
Case với trình duyệt Internet Explorer là tồi tệ hơn nhiều. Sau khi thay đổi/vô hiệu hóa proxy bằng ứng dụng của tôi trong khi IE đang chạy & Ngay cả sau khi chuyển đến "Tùy chọn Internet (inetcpl.cpl)> Kết nối> Cài đặt Lan" Proxy IE đang chạy không bị ảnh hưởng. Ngay cả khi tôi mở một liên kết mới trong một tab mới. Tôi phải khởi động lại IE để thay đổi đó được kết hợp.
Hành vi tôi muốn là bất cứ khi nào tôi thay đổi cài đặt proxy trong ứng dụng, tất cả các trình duyệt đang sử dụng proxy toàn cầu (bất kể họ đang chạy hay không) phải ngay lập tức kết hợp thay đổi trong cài đặt.
Tôi làm cách nào để đạt được điều này?
xem trang này. http://stackoverflow.com/questions/5216323/setting-ie-proxy-by-c-sharp –