相关疑难解决方法(0)

如何使用带有"立即效果"的C#.NET更改全局Windows代理

我正在编写一个Winform(C#.NET)应用程序来更改Windows的全局(也称为Internet Explorer)代理设置.

我正在使用它.

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

但它表现得很奇怪.我使用两个浏览器测试了这个

  • 谷歌浏览器:

在Chrome运行时更改/禁用代理时.Chrome仍在使用之前的代理.这一变化并未影响其流程.但是当我刚打开的时候 Internet Options(inetcpl.cpl) > Connections > LAN Settings.现在考虑先前的代理更改.当我说刚刚开放我真的是说开放.我的意思是,不要编辑或点击任何其他按钮.我猜,它的全局代理实际上正在改变(通过从注册表中读取)和谷歌Chrome立即起作用.

  • Internet Explorer 8:

Internet Explorer的情况要糟糕得多.在IE运行时使用我的应用程序更改/禁用代理后甚至在转到"Internet选项(inetcpl.cpl)>连接> Lan设置"后,正在运行的IE代理不会受到影响.即使我在新标签中打开新链接也不行.我不得不重新启动IE以便将该更改合并到一起.

我想要的行为是,每当我在我的应用程序中更改代理设置时,所有使用全局代理的浏览器(无论它们是否正在运行)都应立即将更改纳入设置.

我怎样才能做到这一点?

.net c# proxy

19
推荐指数
1
解决办法
2万
查看次数

标签 统计

.net ×1

c# ×1

proxy ×1