|
|
|
|
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)
...
|
|
|
|