我想检索默认代理设置。为此,我使用下一个代码:

WINHTTP_PROXY_INFO ProxyInfo;
ZeroMemory( &ProxyInfo, sizeof(ProxyInfo) );

BOOL result = WinHttpGetDefaultProxyConfiguration(&ProxyInfo);

if (result)
{
    //...
}

该函数返回TRUE,但是在ProxyInfo中,无论我通过ProxyCfg.exe->连接-> LAN设置->代理服务器进行了什么设置,我都有:WINHTTP_ACCESS_TYPE_NO_PROXYlpszProxy == NULL。你知道我在做什么错吗?

我在Win7 64位计算机上测试了此代码,但是我需要它在所有WinXP +版本中都能工作。

我检查了libproxy项目,并从注册表中检索了代理设置。这种方法可靠吗?在所有Windows版本中,用于代理配置的注册表路径是否相同?

最佳答案

我已经尝试过Chrome中使用的方法,并且效果很好。另外,还应该在多个Windows版本中对其进行测试。

WINHTTP_CURRENT_USER_IE_PROXY_CONFIG ProxyInfo;
BOOL result = WinHttpGetIEProxyConfigForCurrentUser(&ProxyInfo);

关于c++ - WinHttpGetDefaultProxyConfiguration返回错误的代理信息,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13512852/

10-08 21:31