2017-08-08 60 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也可能工作。

這意味着你知道哪個用戶是「正確的」用戶。

相關問題