【发布时间】: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_PROXY 和 lpszProxy == NULL,无论我通过 ProxyCfg.exe->Connections->LAN Settings->Proxy Server 设置什么设置。你知道我在这里做错了什么吗?
我在 Win7 64 位机器上测试了这段代码,但我需要它在所有 WinXP+ 版本中工作。
我检查了 libproxy 项目,并从注册表中检索了代理设置。这种方法可靠吗?所有 Windows 版本中的代理配置注册表路径是否相同?
【问题讨论】:
-
为什么不使用 WinHttpGetDefaultProxyConfiguration,如果看到虚假结果,请从注册表中读取? “在所有 Windows 版本中”充满乐观——准备使用多种方法。
-
@ActiveTrayPrntrTagDataStrDrvr 但是我怎么知道结果是否错误?:) 在我的计算机上我知道这一点,因为我可以检查注册表/ProxyCfg.exe 并查看结果不正确。在其他计算机上我该怎么做?
-
我会选择注册表而不是任何东西。如果注册表方法没有检索到代理,我会尝试 WinHttp。除此之外,从所有来源获取和设置多个代理也是一种选择。