DELPHI MANIA
www.delphimania.com.ar
 
 
 
  Delphi Mania  >> Trucos >> Aplicaciones
 
   
   
   
   
 
   
   
   
   
   
     
     
     
     
     
     
     
 
Pregunta:¿Cómo puedo ejecutar un programa desde mi aplicación?
 

Grupo: Sistema

Versiones    : D1 D2 D3 D4 D5 D6
Fecha: 28/06/02 Enviado por : Delphimania
Ejemplo D6: ShellExecute.zip  

Respuesta:

      Para ejecutar un programa, abrir o imprimir un archivo, o abrir una carpeta desde tu aplicación puedes utilizar las funciones ShellExecute o ShellExecuteEx. Estas se encuentra dentro de la unidad ShellApi, por lo que debes agregarla en la cláusula uses de tu programa para que puedas hacer uso de ella. Si bien la función ShellExecuteEx es mas completa, para los ejemplos utilizaremos la función ShellExecute por su simplicidad.

      Estas funciones permiten ejecutar un archivo, abrir o imprimir un documento que este asociado a un programa o explorar una carpeta. Los parámetros que requiere la función ShellExecute son: un handle de una ventana (puede ser cero), la operación a realizar('open', 'print' o 'explore', un nombre de archivo con su ruta, los parámetros para el archivo (pueden ser nulos), un directorio de trabajo (puede ser nulo) y un modo de apertura para la ventana. Si al ejecutar la función no hay problemas, esta retorna un handle de la aplicación ejecutada. En cambio, si hubo algún problema, esta retorna un valor menor o igual a 32.

      El ejemplo que sigue a continuación intenta ejecutar el Explorador de Aplicacion con su ventana en modo normal. Si sucediera algún error aparecera un mensaje advirtiendonos que existio algún problema. Cabe aclarar que el archivo no tiene la ruta (c:\Aplicacion\) porque es un archivo que se encuentra en un directorio declarado como ruta de busqueda.


Var Archivo, Params, DirTrabajo: String;

begin
  Archivo := 'explorer.exe';
  Params  := '/e, /n, c:\';
  DirTrabajo :='';
  If ShellExecute(0, 'open', PChar(Archivo), PChar(Params),                   PChar(DirTrabajo), SW_NORMAL) <= 32
     Then ShowMessage('No se pudo ejecutar');
end;

 

      Los siguientes ejemplos muestran como abrir un archivo de texto (por lo general con el block de notas), como imprimir un archivo de texto (por la impresora predeterminada) y como abrir la carpeta "Mis Documentos".

...
  //Abre el archivo con la Aplicacion asociada maximizada
  ShellExecute(0, 'open', 'c:\Setuplog.txt', '', '', SW_SHOWMAXIMIZED);
...
  //Imprime el archivo con la Aplicacion asociada oculta
  ShellExecute(0, 'print', 'c:\Setuplog.txt', '', '', SW_HIDE);
...
  //Abre la carpeta "Mis Documentos"
  ShellExecute(0, 'explore', 'c:\Mis Documentos', '', '', SW_NORMAL);
...

 

      Con ShellExecute también es posible abrir las carpetas que se encuentran en el Panel de Control. Solo hay que ejecutar la aplicación control.exe con algún archivo de extensión .cpl (se encuentran en C:\Aplicacion\System).

...
  //Abre el panel de control
  ShellExecute(0,'open','control.exe', '', NIL, SW_SHOW);
...
  //Abre la carpeta de propiedades del Sistema
  ShellExecute(0,'open','control.exe','Sysdm.cpl', NIL, SW_SHOW);
...

 

     Para terminar, les cuento que tambien es posible abrir una página web, ejecutando ShellApi con la dirección de la página en cuestión como si fuera un archivo.

...
  //Abre la pagina en el Navegador asociado
  ShellExecute(0, 'open','www.delphimania.com.ar', '', '', SW_NORMAL)
...

 

 
 
 
   
DELPHI MANIA  
 
Las marcas que aparecen en esta pagina pertenecen a sus respectivas empresas
Todos los derechos reservados - Copyrigth 2001 ©