Получавате съобщение за грешка "ERROR_FILE_NOT_FOUND", когато се опитате да използвате функцията WinHttpGetIEProxyConfigForCurrentUser

Работете навсякъде от всяко устройство с Microsoft 365

Надстройте до Microsoft 365, за да работите навсякъде с най-новите функции и актуализации.

Надстройване сега

Симптоми

Ако компютърът не е стартиран Microsoft Internet Explorer и използвате функцията WinHttpGetIEProxyConfigForCurrentUser във всяка програма, ще получите следното съобщение за грешка:

ERROR_FILE_NOT_FOUND

Причина

WinHttpGetIEProxyConfigForCurrentUser използва следния подключ на системния регистър:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet настройкиТози подключ на системния регистър се създава при първото Internet Explorer се изпълнява. Ако компютърът се стартира Internet Explorer, този подключ на системния регистър не съществува. Когато се обадите WinHttpGetIEProxyConfigForCurrentUser функция в програмата, функцията Търсене за този запис в системния регистър и не може да го намерите и получавате съобщение за грешка.

Решение

За да разрешите този проблем, Стартирайте Internet Explorer и след това използвайте функцията WinHttpGetIEProxyConfigForCurrentUser във всяка програма.

Повече информация

Стъпки за възпроизвеждане на проблема

  1. Влезте в компютъра, при който Internet Explorer не е бил използван.

  2. Стартирайте Microsoft Visual Studio .NET.

  3. В менюто файл посочете Създайи щракнете върху проекта.

  4. Под Типове проектищракнете върху Visual C++ проекти.

  5. Под шаблонищракнете върху Проект на Win32.

  6. В полето за име въведете тести след това щракнете върху OK.

  7. Добре дошли в съветника за Win32 приложение страницата щракнете върху Настройки на приложението.

  8. Под тип приложениевърху конзолатаи щракнете върху Готово. Test.cpp файл е създаден.

  9. Замени съществуващ код в Test.cpp файл със следния код:

    #include "stdafx.h"#include <Windows.h>#include <Winhttp.h>using namespace std;void main(){WINHTTP_CURRENT_USER_IE_PROXY_CONFIG MyProxyConfig;if(!WinHttpGetIEProxyConfigForCurrentUser(&MyProxyConfig)){//check the errorDWORD Err = GetLastError();cout << "WinHttpGetIEProxyConfigForCurrentUser failed with the following error number: " << Err << endl;switch (Err){case ERROR_FILE_NOT_FOUND:cout << "The error is ERROR_FILE_NOT_FOUND" << endl;break;case ERROR_WINHTTP_INTERNAL_ERROR:cout << "ERROR_WINHTTP_INTERNAL_ERROR" << endl;break;case ERROR_NOT_ENOUGH_MEMORY:cout << "ERROR_NOT_ENOUGH_MEMORY" << endl;break;default:cout << "Look up error in header file." << endl; }//end switch}//end ifelse{//no error so check the proxy settings and free any stringscout << "Auto Detect is: " << MyProxyConfig.fAutoDetect << endl;if(NULL != MyProxyConfig.lpszAutoConfigUrl){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszAutoConfigUrl << endl;GlobalFree(MyProxyConfig.lpszAutoConfigUrl);}if(NULL != MyProxyConfig.lpszProxy){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxy << endl;GlobalFree(MyProxyConfig.lpszProxy);}if(NULL != MyProxyConfig.lpszProxyBypass){wcout << "AutoConfigURL is: " << MyProxyConfig.lpszProxyBypass << endl;GlobalFree(MyProxyConfig.lpszProxyBypass);}}//end elsecout << "finished!";}//end main

    Забележка: Winhttp.h файла и файла Winhttp.lib са включени в Microsoft платформа Софтуерен развоен пакет (SDK). За да изтеглите Platform SDK, посетете следния уеб сайт на Microsoft:

  10. В менюто на проекта щракнете върху Тест свойства.

  11. В левия екран щракнете двукратно върху Свързване.

  12. При Свързванещракнете върху вход.

  13. В десния екран въведете winhttp.lib в полето Допълнителни зависимости и след това щракнете върху OK.

  14. Изграждане на менюто щракнете върху Изграждане на решение.

  15. Натиснете CTRL + F5, за да стартирате програмата, без дебъгера. Получавате съобщение за грешка, упоменато в раздела "Симптоми".

Препратки

За повече информация посетете следния уеб сайт на Microsoft Developer Network (MSDN):

Нуждаете се от още помощ?

Разширете уменията си
Преглед на обучението
Получавайте първи новите функции
Присъединете се към Microsoft приобщени

Беше ли полезна тази информация?

Благодарим ви за обратната връзка!

Благодарим ви за вашата обратна връзка. Изглежда, че ще бъде полезно да ви свържем с един от нашите агенти по поддръжката на Office.

×