Lo has probado con el shellexecute????
es que este permite el paso de parametros dento de su definicion.
ShellExecute(Handle, 'OPEN', PChar(Ruta), Pchar(Parametro), PChar(ExtractFilePath(Ruta)), 0)
en ultimo caso hazte dentro del aplicativo un bat que luego lo puedas ejecutar.
en pseudocodigo seria algo como
Código:
Inicio
Creabat('C:\Abreprograma.bat');
EjecutaBat('C:\Abreprograma.bat');
fin
Creabat('C:\Abreprograma.bat');
// uno que solo cree el fichero para no tener que distribuirlo con el programa