by Antonio Linares » Wed Dec 13, 2023 12:21 pm
ShellExecute() y ShellExecuteEx() son dos funciones que se pueden usar para realizar una operación en un archivo especificado, como abrirlo, editarlo, imprimirlo, etc. La diferencia entre ellas es que ShellExecuteEx() es una versión más personalizada y avanzada de ShellExecute(), que ofrece más opciones y control sobre la ejecución. Algunas de las ventajas de usar ShellExecuteEx() son:
Puede especificar un identificador de ventana que se usará como propietario de cualquier interfaz de usuario o mensaje de error que se muestre durante la ejecución.
Puede especificar un verbo que indique la acción que se va a realizar, como “runas” para ejecutar una aplicación como administrador.
Puede obtener información sobre la aplicación que se inicia como resultado de la llamada, como el identificador de instancia, el código de
salida y el identificador del proceso.
Puede proporcionar una estructura SHELLEXECUTEINFO que contenga información adicional sobre la ejecución, como el directorio de trabajo, los parámetros, el modo de mostrar la ventana, el título de la ventana, el icono, el teclado y el identificador de clase de la aplicación.
Puede esperar a que la aplicación se cierre antes de continuar con la ejecución de su propia aplicación, estableciendo el miembro fMask de la estructura SHELLEXECUTEINFO en SEE_MASK_NOCLOSEPROCESS y usando la función WaitForSingleObject con el miembro hProcess.