Ejecutar una aplicación en delphi

Tengo un pequeño problema y he pensado que tu podrías ayudarme.
El problema es que desde mi aplicación hecha con delphi quiero que se ejecutar el winzip o cualquier aplicación indicándole su ruta.
1

1 respuesta

Respuesta
1
Aprciado duki, para ejecutar una aplicación externa (o un archivo y hacer que lo ejecute el programa que lo abre por defecto) tienes dos opciones...
La más simple es mediante el comando WinExec.
Mira en la ayuda de Delphi para que sepas qué parámetros hay que pasarle. De todas formas te pongo un ejemplo. ¿OK?
Ejemplo con winexec:
WinExec(PChar('c:\windows\notepad.exe'),SW_SHOWNORMAL);
Esto abre el Bloc de Notas, y el tamaño de la ventana es el predeterminado. También puedes poner SW_SHOWMAXIMIZED, o cualquier otro, para ejecutarlo maximizado, minimizado, etc... Mira en la ayuda.
Hay otro método mucho mejor, con el que NO sólo puedes ejecura un archivo, sino abrir cualquier archivo y Windows se encargará de usar el programa asociado para ello. Además, con esta otra opción puedes pasar parámetros...
Se llama ShellExecute. DEBES incluir la uses ShellAPI en tu Unit...
EJEMPLO con ShellExecute:
ShellExecute(Form1.Handle,nil,PChar('c:\archivo.htm'),'','',SW_SHOWNORMAL);
Como ves, parece más difícil, pero ya verás que no lo es tanto...
En primer lugar se le pasa un "Handle". Un handle es como un "identificador de objeto". Puedes pasarle el handle del form en el que estés, eso es lo de menos.
Luego va la ruta del archivo (o programa). Como ves, si la escribes directamente, has de hacerlo mediante PChar(). Si usas una variable, basta con poner la variable. Luego te pongo un ejemplo para que lo veas mejor. ¿OK?
A continuación, los parámetros. Por ejemplo, si vas a ejecutar el arj de ms-dos, puedes pasarle los parámetros aquí (arj -e -a -w ...)
Y al final, el modo en que la ventana se abre, como en el ejemplo de WInExec.
archivo := 'c:\index.html';
ShellExecute(application.Handle,nil,archivo,'','',SW_SHOWNORMAL);
Espero haberte ayudado.
Suerte
Para cualquier cosa, avisa. ¿OK?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas