Cómo ejecutar una aplicación des de la nuestra
Artículo por Club Developers · 31 diciembre 2005
5991 vistas
Para ejecutar una aplicación exterior a nuestro programa es suficiente la utilización de la siguiente función de la API:
hWnd: es el Handle de la ventana que servirá de padre para los mensajes de la aplicación. En la mayorÃa de ocasiones será suficiente un 0
Operation: tipo de operación efectuada sobre el fichero. Puede tomar los siguientes valores:
'OPEN' abrir un documento o ejecutar una aplicación
'PRINT' para imprimir un documento
'EXPLORE' para usar el Explorador de Windows usando la ruta dada en FileName
'FIND' para llamar a la ventana de búsqueda usando la ruta dada en FileName
FileName: Nombre de la aplicación a lanzar, del documento a abrir/imprimir, de la carpeta a explorar, ...
Parameters Lista de parámetros en el caso de que FileName sea una aplicación. Si no tenemos parámetros, tendremos que pasarle Nil
Directory carpeta usada por defecto en el caso de que FileName sea una aplicación. En caso contrario (o si no se usa) pasar Nil
ShowCMD Describe cómo abrir la nueva ventana. Ver la ayuda en linea para más información.
Algunos ejemplos de utilización:
Lanzar simplemente una aplicación
Lanzar una aplicación con parámetros
Ejecutar el Explorador de Windows en una determinada carpeta
Abrir un documento
Imprimir un documento
Mostrar la ventana de búsqueda de Windows
Ejecutar un programa de consola usando redirecciones
Nota: para compilar la función explicada es necesario añadir ShellApi en la cláusula Uses de la unidad que la contenga. Por ejemplo:
Atención: la función WinExec no deberÃa de usarse, sólo se conserva para compatibilidad
delphi
function ShellExecute(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall;
hWnd: es el Handle de la ventana que servirá de padre para los mensajes de la aplicación. En la mayorÃa de ocasiones será suficiente un 0
Operation: tipo de operación efectuada sobre el fichero. Puede tomar los siguientes valores:
'OPEN' abrir un documento o ejecutar una aplicación
'PRINT' para imprimir un documento
'EXPLORE' para usar el Explorador de Windows usando la ruta dada en FileName
'FIND' para llamar a la ventana de búsqueda usando la ruta dada en FileName
FileName: Nombre de la aplicación a lanzar, del documento a abrir/imprimir, de la carpeta a explorar, ...
Parameters Lista de parámetros en el caso de que FileName sea una aplicación. Si no tenemos parámetros, tendremos que pasarle Nil
Directory carpeta usada por defecto en el caso de que FileName sea una aplicación. En caso contrario (o si no se usa) pasar Nil
ShowCMD Describe cómo abrir la nueva ventana. Ver la ayuda en linea para más información.
Algunos ejemplos de utilización:
Lanzar simplemente una aplicación
delphi
ShellExecute(0,'OPEN','Wordpad.exe', Nil, Nil, SW_SHOW);
Lanzar una aplicación con parámetros
delphi
ShellExecute(0,'OPEN','Wordpad.exe','C:\temp\prueba.txt',Nil, SW_SHOW);
Ejecutar el Explorador de Windows en una determinada carpeta
delphi
ShellExecute(0,'EXPLORE','C:\MiCarpeta\', Nil, Nil, SW_SHOW);
Abrir un documento
delphi
ShellExecute(0,'OPEN','C:\Temp\MiFichero.txt', Nil, Nil, SW_SHOW);
Imprimir un documento
delphi
ShellExecute(0,'PRINT','C:\Temp\MiFichero.doc', Nil, Nil, SW_SHOW);
Mostrar la ventana de búsqueda de Windows
delphi
ShellExecute(Application.handle, 'find', 'c:\temp', Nil, Nil, SW_SHOWNORMAL);
Ejecutar un programa de consola usando redirecciones
delphi
ShellExecute(0, nil, 'CMD', PChar('/C Net View > Resultado.txt'), nil, 0);
Nota: para compilar la función explicada es necesario añadir ShellApi en la cláusula Uses de la unidad que la contenga. Por ejemplo:
delphi
uses [...], ShellApi;
Atención: la función WinExec no deberÃa de usarse, sólo se conserva para compatibilidad