2012-11-22 87 views
1

我想要檢索默認代理設置。要做到這一點我用下面的代碼:WinHttpGetDefaultProxyConfiguration返回錯誤代理信息

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

BOOL result = WinHttpGetDefaultProxyConfiguration(&ProxyInfo); 

if (result) 
{ 
    //... 
} 

該函數返回true,但在ProxyInfo我:WINHTTP_ACCESS_TYPE_NO_PROXYlpszProxy == NULL不管我通過ProxyCfg.exe->連接 - >局域網設置 - >代理服務器放什麼設置。你知道我在這裏做錯了嗎?

我在Win7 64位機器上測試了這個代碼,但我需要它在所有WinXP +版本中工作。

我檢查了libproxy項目,並從註冊表中檢索代理設置。這種方法可靠嗎?所有Windows版本中的代理配置是否都是相同的註冊表路徑?

+0

爲什麼不使用WinHttpGetDefaultProxyConfiguration,並且,如果您看到虛假結果,請從註冊表中讀取它? 「所有Windows版本」都充滿了樂觀 - 準備使用多種方法。 – ActiveTrayPrntrTagDataStrDrvr

+0

@ActiveTrayPrntrTagDataStrDrvr但是我怎麼能知道結果是否是錯誤的?:)在我的計算機上,我知道這是因爲我可以檢查註冊表/ ProxyCfg.exe並查看結果不正確。在其他電腦上,我該如何做到這一點? – Felics

+0

我會與任何東西註冊表。如果註冊表方法檢索不到代理,我會嘗試WinHttp。除此之外,從所有來源獲取並設置多個代理也是一種選擇。 – ActiveTrayPrntrTagDataStrDrvr

回答

1

我試過在Chrome中使用的方法,它工作正常。還應該在多個Windows版本中進行測試。

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