Compartir a través de


Función FindExecutableW (shellapi.h)

Recupera el nombre y el identificador del archivo ejecutable (.exe) asociado a un archivo de documento específico.

Sintaxis

HINSTANCE FindExecutableW(
  [in]           LPCWSTR lpFile,
  [in, optional] LPCWSTR lpDirectory,
  [out]          LPWSTR  lpResult
);

Parámetros

[in] lpFile

Tipo: LPCTSTR

Dirección de una cadena terminada en null que especifica un nombre de archivo. Este archivo debe ser un documento.

[in, optional] lpDirectory

Tipo: LPCTSTR

Dirección de una cadena terminada en null que especifica el directorio predeterminado. Este valor puede ser NULL.

[out] lpResult

Tipo: LPTSTR

Dirección de un búfer que recibe el nombre de archivo del archivo ejecutable asociado. Este nombre de archivo es una cadena terminada en null que especifica el archivo ejecutable iniciado cuando se ejecuta una "apertura" por asociación en el archivo especificado en el parámetro lpFile . En pocas palabras, esta es la aplicación que se inicia cuando el archivo de documento se hace doble clic directamente o cuando se elige Abrir en el menú contextual del archivo. Este parámetro debe contener un valor no NULL válido y se supone que es de longitud MAX_PATH. La responsabilidad de validar el valor se deja al programador.

Valor devuelto

Tipo: HINSTANCE

Devuelve un valor mayor que 32 si se ejecuta correctamente o un valor menor o igual que 32 que representa un error.

En la tabla siguiente se enumeran los posibles valores de error.

Código o valor devuelto Descripción
SE_ERR_FNF
2
No se encontró el archivo especificado.
SE_ERR_PNF
3
La ruta de acceso especificada no es válida.
SE_ERR_ACCESSDENIED
5
No se puede tener acceso al archivo especificado.
SE_ERR_OOM
8
El sistema no tiene memoria o recursos.
SE_ERR_NOASSOC
31
No hay ninguna asociación para el tipo de archivo especificado con un archivo ejecutable.

Comentarios

Use FindExecutable para documentos. Si desea recuperar la ruta de acceso de un archivo ejecutable, use lo siguiente:

AssocQueryString(ASSOCF_OPEN_BYEXENAME,
                 ASSOCSTR_EXECUTABLE,
                 pszExecutableName,
                 NULL,
                 pszPath,
                 pcchOut);

Aquí, pszExecutableName es un puntero a una cadena terminada en null que especifica el nombre del archivo ejecutable, pszPath es un puntero al búfer de cadena terminada en null que recibe la ruta de acceso al archivo ejecutable y pcchOut es un puntero a un DWORD que especifica el número de caracteres en el búfer pszPath . Cuando se devuelve la función, pcchOut se establece en el número de caracteres colocados realmente en el búfer. Consulte AssocQueryString para obtener más información.

Cuando se devuelve FindExecutable , el parámetro lpResult puede contener la ruta de acceso al servidor de Intercambio dinámico de datos (DDE) iniciado si un servidor no responde a una solicitud para iniciar una conversación DDE con la aplicación cliente DDE.

Nota

El encabezado shellapi.h define FindExecutable como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shellapi.h
Library Shell32.lib
Archivo DLL Shell32.dll

Consulte también

ShellExecute