Recibe un mensaje de error "ERROR_FILE_NOT_FOUND" cuando intenta utilizar la función WinHttpGetIEProxyConfigForCurrentUser

Seleccione idioma Seleccione idioma
Id. de artículo: 873200 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

Si el equipo nunca ha ejecutado Microsoft Internet Explorer y utilizar la función WinHttpGetIEProxyConfigForCurrentUser en cualquier programa, recibirá el mensaje de error siguientes:
ERROR_FILE_NOT_FOUND

Causa

La función WinHttpGetIEProxyConfigForCurrentUser utiliza la siguiente subclave del registro:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
Esta subclave del registro se crea la primera vez que se ejecuta Internet Explorer. Si el equipo no ha ejecutado Internet Explorer, esta subclave del registro no existe. Al llamar a la función WinHttpGetIEProxyConfigForCurrentUser en un programa, la función busca esta entrada del registro y no puede encontrarla y recibirá el mensaje de error.

Solución

Para resolver este problema, inicie Internet Explorer y, a continuación, utilizar la función WinHttpGetIEProxyConfigForCurrentUser en cualquier programa.

Más información

Pasos para reproducir el problema

  1. Inicie sesión en un equipo donde la Internet nunca ha utilizado.
  2. Inicie Microsoft Visual Studio NET..
  3. En el menú archivo , seleccione nuevo y, a continuación, haga clic en proyecto .
  4. En Tipos de proyecto , haga clic en Proyectos de Visual C++ .
  5. En plantillas , haga clic en Proyecto Win32 .
  6. En el cuadro nombre , escriba prueba y, a continuación, haga clic en Aceptar .
  7. En la página el Asistente para aplicaciones Win32, haga clic en Configuración de la aplicación .
  8. En tipo de aplicación , haga clic en aplicación de consola y, a continuación, haga clic en Finalizar .

    Se crea el archivo Test.cpp.
  9. Replace the existing code in the Test.cpp file with the following 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 error
    		DWORD 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 if
    	else
    	{
    		//no error so check the proxy settings and free any strings
    		cout << "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 else
    	cout << "finished!";
    }//end main
    
    Nota Winhttp.h el archivo y el archivo Winhttp.lib se incluyen en el kit de desarrollo de software (SDK) de plataforma de Microsoft. Para descargar el SDK, visite el siguiente sitio Web de Microsoft:
    http://www.microsoft.com/msdownload/platformsdk/sdkupdate/
  10. En el menú proyecto , haga clic en Propiedades de la prueba .
  11. En el panel izquierdo, haga doble clic en vinculador .
  12. En el vinculador , haga clic en entrada .
  13. En el panel derecho, escriba winhttp.lib en el campo de Dependencias adicionales y, a continuación, haga clic en Aceptar .
  14. En el menú Generar , haga clic en Generar solución .
  15. Presione CTRL+F5 para ejecutar el programa sin el depurador.

    Recibirá el mensaje de error que se menciona en la sección "Síntomas".

Referencias

Para obtener más información, visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa384096.aspx

Propiedades

Id. de artículo: 873200 - Última revisión: jueves, 11 de enero de 2007 - Versión: 1.2
La información de este artículo se refiere a:
  • Microsoft Windows HTTP Services 5.1
Palabras clave: 
kbmt kberrmsg kbprb kbhttp kbsettings kbconfig kbtshoot KB873200 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 873200

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com