[免責聲明:這是Windows 7的具體問題,據我可以告訴]C++/WinInet的更改代理設置Windows 7
我得的是,在Windows註冊表中更改代理服務器設置代碼塊,然後繼續調用具有以下時,WinInet API:
InternetSetOption(NULL, INTERNET_OPTION_SETTINGS_CHANGED, NULL, 0);
InternetSetOption(NULL, INTERNET_OPTION_REFRESH , NULL, 0);
這是在XP和Vista完全正常,但是在Windows 7中的東西顯然已經改變了,由於某種原因,以前的註冊表鍵獲取引起它注射回不按預期工作。
如果我註釋掉這兩行代碼,註冊表值將保持不變,但顯然IE和其他依賴於該代理信息的應用程序不知道配置已更改。
有沒有更好的方法來處理通知系統選項已更改,需要重新加載?我在這個問題上搜索了幾天,切換編譯器等,我沒有做任何事情使它在Windows 7中工作正常。
Bingo--直接在註冊表中戳動不受支持。 一點:您應該設置INTERNET_OPTION_PROXY_SETTINGS_CHANGED選項而不是INTERNET_OPTION_REFRESH才能正常工作。 即使您有固定的代理服務器(例如,使用proxyType | = PROXY_TYPE_PROXY而不是您所擁有的),您也應該使用OR PROXY_TYPE_DIRECT - 您的評論「禁用任何代理服務器」是錯誤的。您也可能不應該盲目地清除旁路列表... – EricLaw 2010-02-22 02:19:26
有關「設置和檢索Internet選項」的MSDN:http://msdn.microsoft.com/en-us/library/windows/desktop/aa385384 (v= vs.85).aspx和一些舊的KB:http://support.microsoft.com/kb/226473/en-us – 2014-11-27 16:16:56