Applies ToInternet Explorer

Symptom

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

Orsak

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ösning

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

Mer information

Åtgärder för att återskapa problemet

  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”.

Referenser

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

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.

Communities hjälper dig att ställa och svara på frågor, ge feedback och få råd från experter med rika kunskaper.