2017-08-08 21 views
1

我想知道如何使用Windows SDK函数检索主机的当前代理设置?Windows:如何检索自动代理设置?

在Windows 10这些设置是这样的:

enter image description here

我在获取上面的红色框中的信息特别感兴趣。我熟悉WinHTTP API,但只会从上面窗口的底部(手动代理部分)中检索信息。

我已经计算出红色方框中的信息存储在注册表中的位置,但我不认为微软打算采用这种方式,因为有关代理的其他信息确实可以通过SDK功能获得,来电者知道信息实际存储在哪里。我相信它在SDK中的某处。

我正在寻找一个解决方案,甚至可以从无头过程中调用,例如,一项服务。据我所知,然后排除使用WinInet API。

+0

这不是每个用户的配置设置吗?在这种情况下,您无法(轻松地)从服务中检索该信息。 – IInspectable

+0

@Inspectable。在一天结束时,一切都在注册处,在某个地方。但让我们假设管理员已将代理配置放入HKLM,而不是HKCU。 (在Win10上这将是'HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings',而不是'HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings')。 – peterh

回答

0

根据KB226473使用IE4 INTERNET_OPTION_PROXYINTERNET_PROXY_INFO),它只提供基本的代理信息。 IE5 +使用INTERNET_OPTION_PER_CONNECTION_OPTIONINTERNET_PER_CONN_OPTION_LIST)来获取/设置代理选项。通过NULL作为InternetQueryOption的句柄来读取全局选项。

这些选项通常是用户特定的,但可以通过ProxySettingsPerUser REG_DWORD设置强制为HKLM。我相信WinINet只是使用普通的注册表函数来读取设置,所以你可以尝试拨打RegDisablePredefinedCache并模拟用户。 RegOverridePredefKey也可能工作。

这意味着你知道哪个用户是“正确的”用户。

相关问题