|
Ejecutando una aplicación externa
Copyright © 2000 Ernesto
De Spirito
ShellExecute
Muchas veces necesitamos ejecutar otro programa desde el nuestro.
Para hacerlo, podemos usar la función ShellExecute declarada
en la unidad ShellAPI. La sintaxis es:
ShellExecute(Manejador, Operación, NombreFichero,
Parámetros, Carpeta, Mostrar)
Valor devuelto: Si la función tiene
éxito, ShellExecute devuelve un valor
tipo HINST (definido como LongWord) con el manejador
(handle) de la aplicación que se ejecutó o el manejador de la aplicación
servidora DDE. Si la función fracasa (o sea, si la aplicación no pudo
iniciarse), el valor devuelto es un código de error entre 0 y 32.
Ejemplos
uses ShellAPI;
...
if ShellExecute(Form1.Handle, nil, 'c:\windows\general.txt',
nil, nil, SW_SHOWNORMAL) <= 32 then
Application.MessageBox('No se pudo ejecutar la aplicación',
'Error', MB_ICONEXCLAMATION);
ShellExecute(Form1.Handle, nil, 'c:\windows\notepad.exe',
'c:\windows\general.txt', nil, SW_SHOWMAXIMIZE);
ShellExecute(Form1.Handle, 'open', 'c:\windows\notepad.exe',
'general.txt', 'c:\windows', SW_SHOWNORMAL);
ShellExecute(Form1.Handle, nil, PChar(fname + '.txt'),
nil, nil, SW_MAXIMIZE);
ShellExecute(Form1.Handle, nil, 'c:\windows\notepad.exe',
nil, nil, SW_SHOWNORMAL);
Nota
Una aplicación llamada por ShellExecute correrá asíncronamente,
esto es, la ejecución de nuestra aplicación continúa sin esperar el
final de la aplicación llamada que correrá simultáneamente.
Si necesita ejecutar una aplicación en modo síncrono, por favor
lea Esperando a que una aplicación termine.
|