【问题标题】:WinHttpGetDefaultProxyConfiguration returns wrong Proxy InfoWinHttpGetDefaultProxyConfiguration 返回错误的代理信息
【发布时间】:2012-11-22 12:34:06
【问题描述】:

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

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

BOOL result = WinHttpGetDefaultProxyConfiguration(&ProxyInfo);

if (result)
{
    //...
}

该函数返回 TRUE,但在 ProxyInfo 中我有:WINHTTP_ACCESS_TYPE_NO_PROXYlpszProxy == NULL,无论我通过 ProxyCfg.exe->Connections->LAN Settings->Proxy Server 设置什么设置。你知道我在这里做错了什么吗?

我在 Win7 64 位机器上测试了这段代码,但我需要它在所有 WinXP+ 版本中工作。

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

【问题讨论】:

  • 为什么不使用 WinHttpGetDefaultProxyConfiguration,如果看到虚假结果,请从注册表中读取? “在所有 Windows 版本中”充满乐观——准备使用多种方法。
  • @ActiveTrayPrntrTagDataStrDrvr 但是我怎么知道结果是否错误?:) 在我的计算机上我知道这一点,因为我可以检查注册表/ProxyCfg.exe 并查看结果不正确。在其他计算机上我该怎么做?
  • 我会选择注册表而不是任何东西。如果注册表方法没有检索到代理,我会尝试 WinHttp。除此之外,从所有来源获取和设置多个代理也是一种选择。

标签: c++ windows winapi


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-05
    • 1970-01-01
    相关资源
    最近更新 更多