Symptomen
Als uw computer is Microsoft Internet Explorer nooit uitgevoerd en u de functie WinHttpGetIEProxyConfigForCurrentUser in een programma gebruiken, wordt het volgende foutbericht weergegeven:
ERROR_FILE_NOT_FOUND
Oorzaak
De functie WinHttpGetIEProxyConfigForCurrentUser gebruikt de volgende registersubsleutel:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet SettingsDeze subsleutel in het register wordt gemaakt de eerste keer dat Internet Explorer wordt uitgevoerd. Als uw computer niet Internet Explorer is uitgevoerd, wordt deze registersubsleutel niet bestaat. Wanneer u de functie WinHttpGetIEProxyConfigForCurrentUser aanroepen in een programma de functie zoekt naar deze registervermelding niet vinden en wordt het foutbericht weergegeven.
Oplossing
Start Internet Explorer en vervolgens de functie WinHttpGetIEProxyConfigForCurrentUser gebruiken in een programma dit probleem op te lossen.
Meer informatie
Stappen om dit probleem te reproduceren
-
Aanmelden bij een computer waarop Internet Explorer nooit zijn gebruikt.
-
Start Microsoft Visual Studio .NET.
-
Wijs Nieuwaan in het menu bestand en klik vervolgens op Project
-
Klik onder Project Typesop Visual C++-projecten.
-
Klik onder sjablonenop Win32-Project.
-
Proefvan het type in het vak naam en klik vervolgens op OK.
-
Klik op de pagina Welkom bij de Wizard Win32-toepassing .
-
Onder type toepassingConsoletoepassingop en klik vervolgens op Voltooien. Het bestand Test.cpp wordt gemaakt.
-
Vervangt de bestaande code in het bestand Test.cpp met de volgende code:
#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
Opmerking Het bestand Winhttp.h en het Winhttp.lib-bestand zijn opgenomen in de Microsoft Platform software development kit (SDK). De Platform SDK downloaden, gaat u naar de volgende Microsoft-website:
-
Klik op Test-eigenschappenin het menu Project .
-
Dubbelklik in het linkerdeelvenster op Linker.
-
Klik onder Linker, Input.
-
Typ winhttp.lib in het veld Extra afhankelijkheden in het rechterdeelvenster en klik vervolgens op OK.
-
Open het menu Build en klik op Build Solution.
-
Druk op CTRL + F5 het programma zonder de debugger uit te voeren. U ontvangt het foutbericht dat wordt vermeld in de sectie 'Symptomen'.
Verwijzingen
Ga naar de volgende website van Microsoft Developer Network (MSDN) voor meer informatie: