Du får felmeddelandet ”ERROR_FILE_NOT_FOUND” när du försöker använda funktionen WinHttpGetIEProxyConfigForCurrentUser

Om du använder funktionen WinHttpGetIEProxyConfigForCurrentUser i alla program och datorn har aldrig köra Microsoft Internet Explorer visas följande felmeddelande:

ERROR_FILE_NOT_FOUND

Funktionen WinHttpGetIEProxyConfigForCurrentUser används följande undernyckel i registret:

HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet SettingsDen här registerundernyckeln skapas första gången Internet Explorer körs. Om din dator inte har kör Internet Explorer, finns inte den här registerundernyckeln. När du anropar funktionen WinHttpGetIEProxyConfigForCurrentUser i funktionen söker efter den här registerposten program och kan inte hitta det och felmeddelande visas.

Lös problemet genom att starta Internet Explorer och sedan använda funktionen WinHttpGetIEProxyConfigForCurrentUser i alla program.

  1. Logga in på en dator där Internet Explorer inte har använts.

  2. Starta Microsoft Visual Studio .NET.

  3. Peka på NyttArkiv -menyn och sedan på projekt.

  4. Klicka på Visual C++-projektunder Projekttyper.

  5. Klicka på Win32-projektunder mallar.

  6. Skriv Testi rutan namn och klicka sedan på OK.

  7. Klicka på Inställningarpå sidan Välkommen till guiden för Win32-program .

  8. Klicka på Slutförunder Programtypkonsolprogram. Test.cpp-filen skapas.

  9. Ersätt den befintliga koden i filen Test.cpp med följande kod:

    #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

    Obs! Filen Winhttp.h och filen Winhttp.lib finns i Microsoft Platform software development kit (SDK). Om du vill hämta Platform SDK finns på följande Microsoft-webbplats:

  10. Klicka på Test egenskaperprojekt -menyn.

  11. Dubbelklicka på Linkeri den vänstra rutan.

  12. Klicka på indataunder Linker.

  13. Ange winhttp.lib i fältet Ytterligare beroenden i den högra rutan och klicka på OK.

  14. Klicka på Skapa lösningBuild -menyn.

  15. Tryck på CTRL + F5 för att köra programmet utan felsökningsverktyget. Du får felmeddelandet som nämns i avsnittet ”Symptom”.

Mer information finns på följande Microsoft Developer Network (MSDN)-webbplats:

Behöver du mer hjälp?

Utöka dina kunskaper
Utforska utbildning
Få nya funktioner först
Anslut till Microsoft Insiders

Hade du nytta av den här informationen?

Tack för din feedback!

×