Función ShellExecuteExW (shellapi.h)
Realiza una operación en un archivo especificado.
Sintaxis
BOOL ShellExecuteExW(
[in, out] SHELLEXECUTEINFOW *pExecInfo
);
Parámetros
[in, out] pExecInfo
Tipo: SHELLEXECUTEINFO*
Puntero a una estructura SHELLEXECUTEINFO que contiene y recibe información sobre la aplicación que se ejecuta.
Valor devuelto
Tipo: BOOL de
Devuelve true si se ejecuta correctamente; De lo contrario, FALSE. Llame a GetLastError para obtener información de error extendida.
Observaciones
Dado que ShellExex puede delegar la ejecución en extensiones de Shell (orígenes de datos, controladores de menú contextual, implementaciones de verbo) que se activan mediante el modelo de objetos componentes (COM), se debe inicializar COM antes de llamar a ShellExex. Algunas extensiones de Shell requieren el tipo de apartamento de un solo subproceso COM (STA). En ese caso, COM debe inicializarse como se muestra aquí:
CoInitializeEx(NULL, COINIT_APARTMENTTHREADED | COINIT_DISABLE_OLE1DDE)
Hay instancias en las que ShellExex no usa uno de estos tipos de extensión de Shell y esas instancias no requerirían que COM se inicialice en absoluto. No obstante, es recomendable inicializar siempre COM antes de usar esta función.
Cuando los archivos DLL se cargan en el proceso, adquiere un bloqueo conocido como bloqueo bloqueo del cargador. La función dllMain de
Con varios monitores, si especifica un HWND y establece el lpVerb miembro del SHELLEXECUTEINFO que apunta lpExecInfo en "Propiedades", es posible que las ventanas creadas por ShellExecuteEx no aparezcan en la posición correcta.
Si la función se ejecuta correctamente, establece el hInstApp miembro del SHELLEXECUTEINFO en un valor mayor que 32. Si se produce un error en la función, hInstApp se establece en el valor de error SE_ERR_XXX que mejor indica la causa del error. Aunque hInstApp se declara como HINSTANCE por compatibilidad con aplicaciones Windows de 16 bits, no es un verdadero HINSTANCE. Solo se puede convertir a un int y solo se puede comparar con el valor 32 o los códigos de error SE_ERR_XXX.
Los valores de error de SE_ERR_XXX se proporcionan por compatibilidad con ShellExecute. Para recuperar información de error más precisa, use GetLastError. Puede devolver uno de los siguientes valores.
Error | Descripción |
---|---|
ERROR_FILE_NOT_FOUND | No se encontró el archivo especificado. |
ERROR_PATH_NOT_FOUND | No se encontró la ruta de acceso especificada. |
ERROR_DDE_FAIL | Error en la transacción de Intercambio dinámico de datos (DDE). |
ERROR_NO_ASSOCIATION | No hay ninguna aplicación asociada a la extensión de nombre de archivo especificada. |
ERROR_ACCESS_DENIED | Se deniega el acceso al archivo especificado. |
ERROR_DLL_NOT_FOUND | No se encuentra uno de los archivos de biblioteca necesarios para ejecutar la aplicación. |
ERROR_CANCELLED | La función solicitó al usuario información adicional, pero el usuario canceló la solicitud. |
ERROR_NOT_ENOUGH_MEMORY | No hay suficiente memoria para realizar la acción especificada. |
ERROR_SHARING_VIOLATION | Se ha producido una infracción de uso compartido. |
Abrir elementos desde una dirección URL Puede registrar la aplicación para que se active cuando se pasen direcciones URL. También puede especificar qué protocolos admite la aplicación. Consulta de registro de aplicaciones para obtener más información.
compatibilidad con la cadena de sitios A partir de Windows 8, puedes proporcionar un puntero de cadena de sitio a la función ShellExEx para admitir la activación de elementos con servicios de ese sitio. Consulte inicio de aplicaciones (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO) para obtener más información.
Nota
El encabezado shellapi.h define ShellEx 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 Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows XP [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
shellapi.h |
biblioteca de |
Shell32.lib |
DLL de |
Shell32.dll (versión 3.51 o posterior) |
Consulte también
iniciar aplicaciones (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)