PDA

Ver la Versión Completa : ejemplos de ShellExecute y winexec ejecutando aplicaciones con parametros


JGCG
05-05-2007, 00:19:17
:confused:

Que tal a todos, hay ocaciones en las que requiero ejecutar una aplicacion mandandole parámetros desde delphi, pero no me funciona lo he intentado hacer con ShellExecute y winexec, si me funciona cuando solo tengo que ejecutar la aplicación sin enviarle parámetros. Alguien me puede mandar ejemplos se lo agradecería mucho. Saludos.

seoane
05-05-2007, 00:23:29
:confused: ¿Como lo estas intentando? Pon un ejemplo

JGCG
05-05-2007, 00:31:39
así:
la instrucción en el dos es:

C:\otter <socrates.in> sali.out

otter es la aplicación y el resto los parametros que son los nombres de dos archivos uno de entrada y otro de salida, lo he intentado así:

ShellExecute(Form1.Handle, nil, 'c:\otter', '<socrates.in>sali.out', 'c:\', SW_SHOWNORMAL);

y

winexec('C:\otter <socrates.in> sali.out',1);

seoane
05-05-2007, 00:53:26
Vamos por partes, tu no le estas pasando parámetros al programa, lo que estas indicando con < y > al interprete de comando es que redirija la entrada y la salida del ejecutable a unos ficheros. Dado que < y > son comando propios del interprete de comandos y no del ejecutable, es el interprete de comando el que debe procesarlos.

Tienes 2 soluciones redireccionar la entrada y la salida tu mismo, o ejecutar el programa a través del interprete de comandos. La primera opción es bastante compleja, la segunda sin embargo es bastante sencilla:
ShellExecute(Form1.Handle, nil, 'cmd.exe', '/c otter < socrates.in >sali.out', 'c:\', SW_SHOWNORMAL);

Aunque como ya te recomendé en otro hilo, tambien puedes usar el truco 54 (http://www.clubdelphi.com/trucos/index.php?id=54)

JGCG
05-05-2007, 10:53:49
Muchisimas Gracias Seoane, si me funciono a la perfeción tu solución. :)