Fehlermeldung "ERROR_FILE_NOT_FOUND" erhalten, wenn Sie versuchen, die WinHttpGetIEProxyConfigForCurrentUser-Funktion

Gilt für: Internet Explorer

Problembeschreibung


Wenn Ihrem Computer Microsoft Internet Explorer nie ausgeführt hat, und verwenden Sie die WinHttpGetIEProxyConfigForCurrentUser -Funktion in einem beliebigen Programm, erhalten Sie folgende Fehlermeldung:
ERROR_FILE_NOT_FOUND

Ursache


Die WinHttpGetIEProxyConfigForCurrentUser -Funktion verwendet den folgenden Registrierungsunterschlüssel:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
Dieser Registrierungsunterschlüssel wird erstmals erstellt, die Internet Explorer ausgeführt wird. Wenn Ihr Computer Internet Explorer nicht ausgeführt wurde, ist dieser Registrierungsunterschlüssel nicht vorhanden. Wenn Sie rufen Sie die WinHttpGetIEProxyConfigForCurrentUser -Funktion in einem Programm die Funktion sucht diesen Registrierungseintrag nicht finden und die Fehlermeldung.

Fehlerbehebung


Um dieses Problem zu beheben, starten Sie Internet Explorer, und verwenden Sie die WinHttpGetIEProxyConfigForCurrentUser -Funktion in einem Programm.

Weitere Informationen


Schritte zum Reproduzieren des Problems

  1. Melden Sie sich bei einem Computer, in dem Internet Explorer nie verwendet wurde.
  2. Starten Sie Microsoft Visual Studio .NET.
  3. Klicken Sie im Menü Datei auf neu und klicken Sie dann auf Projekt.
  4. Klicken Sie unter Projekttypenauf Visual C++-Projekte.
  5. Klicken Sie unter Vorlagenauf Win32-Projekt.
  6. Geben Sie im Feld NameTest, und klicken Sie auf OK.
  7. Klicken Sie auf der Seite Willkommen beim Win32 Application Wizard auf Application Settings.
  8. Unter AnwendungstypKonsolenanwendungsprojektauf und klicken Sie dann auf Fertig stellen. Die Bezeichnung-Datei wird erstellt.
  9. Ersetzen Sie den vorhandenen Code in der Datei der Bezeichnung mit dem folgenden 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
    Hinweis Die Winhttp.h und die Winhttp.lib-Datei sind im Microsoft Platform Software Development Kit (SDK) enthalten. Das Platform SDK herunterladen, finden Sie auf der folgenden Microsoft-Website:
  10. Klicken Sie im Menü Projekt auf Eigenschaften.
  11. Doppelklicken Sie im linken Bereich auf Linker.
  12. Klicken Sie unter LinkerInput.
  13. Geben Sie im rechten Bereich winhttp.lib im Feld Additional Dependencies , und klicken Sie dann auf OK.
  14. Klicken Sie im Menü Erstellen auf Projektmappe erstellen.
  15. Drücken Sie STRG + F5, um das Programm ohne den Debugger ausführen. Sie erhalten die Fehlermeldung, die im Abschnitt "Symptome" genannt wird.

Informationsquellen


Weitere Informationen finden Sie auf der folgenden Microsoft Developer Network (MSDN)-Website: