Ejecutar una aplicación externa

Muy simple, tan solo acordarse de incluir en Uses la ShellApi. Hay varias opciones, esta es una válida:

ShellExecute(Self.handle,'Open','Compresor','Parámetros de compresón',nil, SW_SHOWNORMAL);

Para ejecutar, por ejemplo, un compresor sin paso de parámetros:

ShellExecute(Self.handle,'Open','C:\winzip\winzip32.exe','',nil, SW_SHOWNORMAL);

En este caso no queda mas remedio que utilizar como segundo parámetro Open, pero de la misma forma se puede utilizar con Print, a efectos de impresión o Explore, como sustituto de otras funciones de localización de ficheros.

También podríamos haber indicado un sistema de ventana, como última parámetro, distinto del que hemos utilizado, por ejemplo para ejecutar de forma oculta con SW_HIDE.

Si se produce un error devuelve distintos valores, según del que se trate. Aconsejamos la ayuda del API sobre esta función, pues contiene muy distintas posibilidades y mensajes.

Otra opción, que permite un control mas exhaustivo, es ShellExecuteEx().