[免责声明:据我所知,这是一个 Windows 7 特定问题]
我有一段代码可以更改 Windows 注册表中的代理设置,然后继续使用以下内容调用 WinInet API:
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
这在 XP 和 Vista 中完全没问题,但在 Windows 7 中显然发生了一些变化,并且由于某种原因,以前的注册表项被重新注入,导致它无法按预期工作。
如果我注释掉这两行代码,注册表值仍然存在,但显然 IE 和其他依赖该代理信息的应用程序不知道配置已更改。
是否有更好的方法来通知系统选项已更改并需要重新加载?我已经在这个问题上搜索了几天,切换了编译器等,但我没有做任何事情让它像我在 Windows 7 中所期望的那样工作。