ShelExec es una aplicación de consola que le permite ejecutar programas (como usuario o administrador actual), abrir documentos en aplicaciones asociadas, ver páginas web en su navegador predeterminado y más. Es un "envoltorio de consola" para la función ShellexCuteEx.

Binarios compilados:
Shellexec_win64.zip (~ 96 kb)
Shellexec_win32.zip (~ 72 kb)
ShellExec FILE [-o Operation] [-p Parameters] [-d Directory] [-s ShowCommand]
[-w [finish|idle]] [-t TIME] [-hwnd WindowHandle] [-h] [-V] [--license] [--home] [--source]
Las opciones son sensibles a los estuches. Las opciones en los soportes cuadrados son opcionales.
-o , --operation=STR
Acción a realizar. La acción predeterminada está abierta . Vea la descripción a continuación.
-p , --params=STR
Si el archivo especifica un archivo ejecutable, este parámetro es una cadena que especifica los parámetros que se pasarán a la aplicación.
-d , --directory=DIR
Directorio de trabajo para la acción.
-s , --show-cmd=STR
Este parámetro especifica cómo se mostrará una aplicación cuando se abre. El comando de exhibición predeterminado es SW_Shownormal . Vea la descripción a continuación.
-w , --wait=[FOR]
terminar o inactivo . Valor predeterminado: finalizar . Si no especifica un tiempo de espera en la opción -t , se usará infinito ( -t=infinite ). Vea la descripción a continuación.
-t , --wait-time=TIME
Intervalo de tiempo de espera (para la opción -w ). Unidades de tiempo disponibles: ms (MilliseConds), s (segundos), m (minutos), h (horas), d (días). Si no se especifica ninguna unidad, se utilizarán milisegundos. El valor infinito significa que no hay límite de tiempo.
-hwnd , --window-handle=INT
Un mango de la ventana principal utilizada para mostrar una interfaz de usuario o mensajes de error.
-h , --help
Mostrar ayuda.
-V , --version
Mostrar versión de aplicación.
--license
Mostrar licencia de programa.
--home
Se abre la página de inicio del programa en el navegador predeterminado.
--source
Abre la página del programa en GitHub con los archivos de origen del programa.
Nombre de archivo o directorio o url u objeto en el que ejecutar la operación especificada.
abierto
Abre el elemento especificado por el parámetro del archivo. El elemento puede ser un archivo, carpeta o URL.
editar
Lanza un editor y abre el documento para la edición. Si el archivo no es un archivo de documento, el ShelExec fallará.
explorar
Explora una carpeta especificada por archivo.
encontrar
Inicia una búsqueda que comienza en el directorio especificado por -d opción.
imprimir
Imprime el archivo especificado por archivo. Si el archivo no es un archivo de documento, el programa falla.
Runas
Lanza una aplicación como administrador. El control de la cuenta del usuario (UAC) le pedirá al usuario que consiente que ejecute la aplicación elevada o ingrese las credenciales de una cuenta de administrador utilizada para ejecutar la aplicación.
propiedades
Muestra las propiedades del archivo o la carpeta.
Más información (LPOperation): https://docs.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew
Más información (lpverb): https://docs.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shellexCuteInfow
0 | SW_HIDE | Hide
Oculta la ventana y activa otra ventana.
1 | SW_SHOWNORMAL | ShowNormal Normal | SW_NORMAL | Normal
Activa y muestra una ventana. Si la ventana se minimiza o maximiza, el sistema lo restaura a su tamaño y posición originales. Una aplicación debe especificar este indicador al mostrar la ventana por primera vez.
2 | SW_SHOWMINIMIZED | ShowMinimized | Minimized
Activa la ventana y la muestra como una ventana minimizada.
3 | SW_SHOWMAXIMIZED | ShowMaximized | Maximized | Maximize
Activa la ventana y la muestra como una ventana maximizada.
4 | SW_SHOWNOACTIVATE | ShowNoActivate | NoActivate
Muestra una ventana en su tamaño y posición más recientes. Este valor es similar a SW_Shownormal, excepto que la ventana no está activada.
5 | SW_SHOW | Show
Activa la ventana y la muestra en su tamaño y posición actuales.
6 | SW_MINIMIZE | Minimize
Minimiza la ventana especificada y activa la siguiente ventana de nivel superior en el orden z.
7 | SW_SHOWMINNOACTIVE | ShowMinNoActive | MinNoActive
Muestra la ventana como una ventana minimizada. Este valor es similar a SW_Showminimized, excepto que la ventana no está activada.
8 | SW_SHOWNA | ShowNA
Muestra la ventana en su tamaño y posición actuales. Este valor es similar a SW_SHOW, excepto que la ventana no está activada.
9 | SW_RESTORE | Restore
Activa y muestra la ventana. Si la ventana se minimiza o maximiza, el sistema lo restaura a su tamaño y posición originales. Una aplicación debe especificar este indicador al restaurar una ventana minimizada.
10 | SW_SHOWDEFAULT | ShowDefault
Establece el estado del programa basado en el valor SW_ especificado en la estructura StartupInfo pasada a la función Createprocess por el programa que inició la aplicación.
11 | SW_FORCEMINIMIZE | ForceMinimize
Minimiza una ventana, incluso si el hilo que posee la ventana no responde. Esta bandera solo debe usarse al minimizar las ventanas de un hilo diferente.
Más información: https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-showwindow#parameters
finalizar
Espere hasta que el programa de ejecución (especificado en el parámetro del archivo) finalice su funcionamiento, o hasta que haya transcurrido el intervalo de tiempo de espera ( -t opción).
inactivo
Espere hasta que el programa especificado haya terminado de procesar su entrada inicial y esté esperando la entrada del usuario sin entrada pendiente, o hasta que haya transcurrido el intervalo de tiempo de espera (opción -t ).
Más información:
https://docs.microsoft.com/en-us/windows/win32/api/synchapi/nf-synchapi-waitforsingleObject
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuserwaitforinputidle
0 - éxito
Cualquier otro valor - Error
Inicia la calculadora del sistema:
ShellExec calc
Abre el archivo "hosts" en el editor de texto del sistema, Bloc de notas:
ShellExec notepad -o runas -p "C:WindowsSystem32driversetchosts"
Muestra el sitio web dado en el navegador predeterminado:
ShellExec https://example.com
Abre el archivo "win.ini" en el editor de texto asociado con los archivos INI:
ShellExec "C:Windowswin.ini"
Abre el archivo JPG en el visor gráfico predeterminado:
ShellExec "D:picturesmy picture.jpg"
Abre el archivo BAT para editar en el editor predeterminado y espera a que finalice el programa:
ShellExec "D:batch_filestest.bat" -o edit -w=finish
Dominio público.
Necesita Embarcadero Delphi XE2 o más nuevo (la versión comunitaria gratuita es EUGH).
También necesita algunas unidades de la biblioteca JPLIB.