这是我用来启用代理的代码。在 Server 2008 R2(Windows 7 内核)之前,它在所有版本的 Windows 上都可以正常工作。现在它只在第一次起作用。我启动我的应用程序并启用代理,并且工作正常。然后我尝试使用类似于以下代码的代码禁用它。它永远不会被禁用。如果我通过进入 Internet 选项手动禁用它,然后尝试通过我的应用程序再次启用它,它不会被启用。
据我所知,我的代码中的第一个 InternetSetOption 命令正在恢复我使用 regKey.SetValue() 函数所做的更改。至少当我逐步完成它时,这似乎是正在发生的事情。有没有人以前见过这个问题,或者知道如何解决它。我一直在努力寻找解决方法一段时间,但没有任何结果。任何输入将不胜感激。
regKey.SetValue("ProxyServer", "localhost:" + Settings.Default.Port, RegistryValueKind.String);
regKey.SetValue("ProxyEnable", 1, RegistryValueKind.DWord);
regKey.Flush();
InternetSetOption(IntPtr.Zero, 39, IntPtr.Zero, 0); //INTERNET_OPTION_SETTINGS_CHANGED
InternetSetOption(IntPtr.Zero, 37, IntPtr.Zero, 0); //INTERNET_OPTION_REFRESH