[免责声明:据我所知,这是一个仅适用于Windows 7的问题]
我有一段代码可以更改Windows注册表中的代理服务器设置,然后使用以下WinInet API:
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
在Windows XP和Vista中,这是完全正常的。然而,在Windows 7中,似乎有些变化,之前的注册表键被注入回来,导致它不能像预期的那样工作。
如果我注释掉这两行代码,注册表值会保留,但显然IE和其他依赖于代理信息的应用程序并不知道配置已经改变。
有没有更好的方法来通知系统选项已经改变,并需要重新加载?我已经搜索了几天这个问题,切换了编译器等等,但无论我做什么,在Windows 7中都不能按照我的预期工作。