为什么更改regkey ProxySettingsPerUser不会影响IneternetSetOption(),如果WinInet库已经在进程中加载

我有一个要求,我想要以编程方式configuration整个机器的代理设置。 在我的代码中,我首先创build下面的registry项

HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ProxySettingsPerUser = 0

在成功创buildregistry项之后,我从同一个进程调用InternetSetOption来设置机器宽度的代理设置。 即使通话成功,机器范围的代理设置也不会被设置。 但是如果上面的键已经在我的进程启动之前创build,我可以从相同的代码设置机器范围的代理设置。

我的猜测是这是因为WinInet已经在加载过程中,之后我从同一个进程创build了registry项,WinInet没有兑现上面的registry项更改。

我可以通过dynamic加载WinInet来解决这个问题(创buildregistry项后,调用WinInet的LoadLibrary)。

我的问题 – 有没有更好的select可用于此?