我使用此代码来更改C#应用程序中的Internet代理:
RegistryKey registry = Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings", true);
registry.SetValue("ProxyEnable", 1);
registry.SetValue("ProxyServer", "127.0.0.1:80);
settingsReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_SETTINGS_CHANGED, IntPtr.Zero, 0);
refreshReturn = InternetSetOption(IntPtr.Zero, INTERNET_OPTION_REFRESH, IntPtr.Zero, 0);
运行程序后,当我在IE中访问Internet属性时,我可以看到代理服务器已被更改:
我的问题:如何在不影响IE设置的情况下更改代理。我的意思是,当代理更改时,如果我检查Internet属性,则不会进行任何更改。
答案 0 :(得分:0)
我不确定,但我认为它们似乎拦截了对winsock的调用并将其修改为proxyaware。因此,每当您从程序中创建网络调用时,它都会被您的proxy-prog捕获,并将其传递给winsock并添加代理信息。
IP or winsock interception?似乎问了一个非常相似的问题,所以探索答案可能会给你答案。这只是试图阅读网络连接,但我所做的一些谷歌搜索确实表明分层服务提供商可能是你需要的东西,而Detours也可能是值得关注的东西。