C ++ / WinInet Proxy-Einstellungen ändern Windows 7

[Haftungsausschluss: Dies ist ein Windows 7-spezifisches Problem, soweit ich das beurteilen kann.]

Ich habe einen Codeblock, der die Proxyeinstellungen in der Windows-Registrierung ändert, und rufe dann die WinInet-API folgendermaßen auf:

InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);

Dies ist in XP und Vista völlig in Ordnung, jedoch hat sich in Windows 7 anscheinend etwas geändert, und aus irgendeinem Grund werden die vorherigen Registrierungsschlüssel zurückgespielt, was dazu führt, dass sie nicht wie erwartet funktionieren.

Wenn ich diese beiden Codezeilen auskommentiere, bleiben die Registrierungswerte erhalten, aber IE und andere Anwendungen, die sich auf diese Proxyinformationen stützen, haben offensichtlich keine Ahnung, dass sich die Konfiguration geändert hat.

Gibt es eine bessere Möglichkeit, das System zu benachrichtigen, dass sich die Optionen geändert haben und neu geladen werden müssen? Ich habe tagelang nach diesem Problem gesucht, den Compiler gewechselt usw., und nichts, was ich tue, lässt es so funktionieren, wie ich es in Windows 7 erwarten würde.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage