Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-03-2011
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Angry Ayuda con ejecucion de linea de comandos

Hola, como están? .
Los molesto por que tengo un problema desde hace 3 días y no puedo solucionarlo con nada.

Les cuento:
Estoy haciendo un programa que es un FrontEnd entre una aplicacion de linea de comandos llamada POPSTATION.EXE ( es un programa que te transforma las ISOS de PlayStation en ISOS para jugarlas desde la PSP) y la cargo en un TJvCreateProcess.

En este programa ejecuto muchos bat, por que no solo hace eso, sino que tambien usa otros programitas desde linea de comandos (popstrip.exe, que descomprime isos de psp ya comprimidos con popstation.exe, Ciso.exe que transforma las ISO en CSO y daxcr.exe que transforma los ISO en dax, fffmpeg para cargar sonido y transformarlo en wav) pero mi problema esta en el popstation.exe y es el siguiente:

Hago un TStringList y le cargo los datos ahi

que son estos:
Código Delphi [-]
  Lst := TStringList; // Declaro la lista
  Lst := TStringList.Create; // Creo la lista
  cmd := '"' + ExtractFilePath(ParamStr(0)) + 'PSX\popstation.exe" ' + '"' + Trim(EdtGameTitle.Text)  + '" ' + 
         Trim(EdtIDGame.Text) + ' 9 ' + '"' + Trim(EdtInFile.Text) + '"'; // Inserto los valores en una variable string
  Lst.Add(Trim(cmd)); // Agrego el String a la lista
  Lst.Add('Move /Y "' + ExtractFilePath(ParamStr(0))+ 'PSX\EBOOT.PBP" "' + ExtractFilePath(EdtInFile.Text)+ '"'); // Agrego otro String a la lista, que me mueve el archivo generado a la carpeta en donde lo necesito
  Lst.SaveToFile(ExtractFilePath(ParamStr(0)) + 'PSX\mke.bat'); // Salvo en bat
  Lst.Free; // Libero la lista

Después de todo esto, ejecuto el bat cargando el TJvCreatePRocess asi:

Código Delphi [-]
  Form1.Proceso.ApplicationName := ExtractFilePath(ParamStr(0)) + 'PSX\mke.bat';
  Form1.Proceso.Run;

Pero no anda.
Lo raro es que si ejecuto el Bat mediante doble click, ANDA PERFECTOOOOOO!!!!

Me estoy volviendo locooooooo!!

Probe cargando separadamente el ejecutable con las instrucciones y tampoco

Ya probe con todas las funciones y procedimientos que encontre por internet de ejecutar lineas de comandos y nada....

Alguien me puede ayudar???

Se imaginan por que el BAT no es roconocido por mi aplicación ponga la función o procedimiento que le ponga?

Solo se abre la ventanita de DOS y se cierra como si hubiese puesto mal los comandos, pero al abrir el bat y probar con doble click anda lo mas bien.

Esto es lo que tiene el bat adentro.
Cita:
"D:\_Datos Importantes_\Mis Proyectos Delphi\PSPTool\PSX\popstation.exe" "Tomb Raider Chronicles" SLES03336 9 "D:\Temp\Tomb Raider Chronicles\Tomb RAider Chronicles.iso"
Move /Y "D:\_Datos Importantes_\Mis Proyectos Delphi\PSPTool\PSX\EBOOT.PBP" "D:\Temp\Tomb Raider Chronicles\"
Asi es tal cual como esta el BAT.
Si alguien me puede ayudar se lo agradeceré muchísimo.
Saludos!

Última edición por ecfisa fecha: 25-03-2011 a las 05:00:06. Razón: ETIQUETAS DELPHI
Responder Con Cita
  #2  
Antiguo 25-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Prueba a cambiar la extensión por CMD.

Supongo que ya has probado a ejecutarlo con WinExec y ShellExecute (aquí en los foros puedes encontrar ejemplos de ambos).
¿Es así?
¿Mismo resultado?

AÑADO: Acabo de ejecutar esto desde un programa Delphi y funciona perfectamente:

Código Delphi [-]
  WinExec('c:\temp\Open Firefox.bat', 0);
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 25-03-2011
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Prueba a cambiar la extensión por CMD.


Supongo que ya has probado a ejecutarlo con WinExec y ShellExecute (aquí en los foros puedes encontrar ejemplos de ambos).
¿Es así?
¿Mismo resultado?

AÑADO: Acabo de ejecutar esto desde un programa Delphi y funciona perfectamente:

Código Delphi [-]
  WinExec('c:\temp\Open Firefox.bat', 0);
Ah!! Ya probé lo de cambiar extensión y lo mismo..... La verdad es que esto es mas un desafío que una programa para un hobbie eh! no entiendo por que hace eso ja!


Hola, gracias por la respuesta.
En lo que al foro se refiere, ya probé con todo lo que encontré por los hilos
Probé con Winexec y ShellExecute también.
Le acabo de agregar una pestaña mas al programa y en ella convierto cualquier tipo de video con ffmpeg al formato PSP y el bat que genero anda perfectamente.
La verdad es que no se por que este no funciona.
Me está volviendo loco.
Una consulta:
Se puede hacer un "semiprogramita" en consola de delphi y desde este ejecutar ese bat? o es algo loco que daría el mismo resulta. De poderse; como se usa la consola de Delphi?? jaja!
Saludos!

Última edición por MaxiDucoli fecha: 25-03-2011 a las 12:40:51.
Responder Con Cita
  #4  
Antiguo 25-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Puedes probar otra cosa, a ver si adivinas cual es el error que genera.

Supongo que el problema radica en que no puede ver el error que genera el BAT cuando lo ejecutas desde delphi (puesto que desde fuera funciona).

Normalmente si desde la consola ejecutas esto:

Código:
c:\>  TEST.BAT >> Errores.txt
La salida de mensajes se guarda en ese fichero.

¿Puedes probar a añadir el ">>Errores.txt" a tu ejecución, a ver si genera algo?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 25-03-2011
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Más cosas que puedes probar....

Si ejecutas algo así:

Código Delphi [-]
WinExec('c:\temp\Open Firefox.bat', SW_SHOW);

Deberías ver la consola; Fíjate que antes en lugar del SW_SHOW había un 0.
Algo más; He probado a poner comandos PAUSE, dentro del BAT y se detiene, por lo tanto podrás ver si se ejecuta (al menos).

Otra cosa que he probado es lanzar la llamada con esto:

Código Delphi [-]
  WinExec('"c:\_Sistema\Google Tools.bat" > Errores.txt', SW_SHOW);

Funiona y me genera el fichero Errores.txt con la salida. Podrás ver si da algun error.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 25-03-2011
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Thumbs up

Cita:
Empezado por Neftali Ver Mensaje
Más cosas que puedes probar....

Si ejecutas algo así:

Código Delphi [-]
WinExec('c:\temp\Open Firefox.bat', SW_SHOW);

Deberías ver la consola; Fíjate que antes en lugar del SW_SHOW había un 0.
Algo más; He probado a poner comandos PAUSE, dentro del BAT y se detiene, por lo tanto podrás ver si se ejecuta (al menos).

Otra cosa que he probado es lanzar la llamada con esto:

Código Delphi [-]
  WinExec('"c:\_Sistema\Google Tools.bat" > Errores.txt', SW_SHOW);

Funiona y me genera el fichero Errores.txt con la salida. Podrás ver si da algun error.
GENIO GENIO TA TA TA!!! Ja!
Muchas gracias che!!!
probando y probando me olvide de cerrar un cmd.exe y volvi a presionar el boton de ejecutar el bat con toda la bronca! jaja!
y pude leer en la ventana cmd (ya que lo ejecuto ahí) que el bat se me ejecutaba no desde donde estaba escrito el exe, que se me ponia algo asi:

D:\Temporal\Tomb Raider Chronicles\>"D:\_Datos Importantes_\Mis Proyectos Delphi\PSP Tool\Psx\popstation.exe" "Tomb Raider Chronicles" "SLESXXXXX" "9" "D:\Temporañ\Tomb Raider Chronicles\"


Lo único que hice fue agregar una linea al bat que dice:

CD "D:\_Datos Importantes_\Mis Proyectos Delphi\PSP Tool\Psx\"

Y LISTO!!!
Mande la linea de comandos a la carpeta del exe y aunque le indico la carpeta del exe ya en la instruccion no se por que quiere que la mande ahi, pero ya no importa por que funciona.
Te agradezco muchisimo por tu ayuda, ya que sin ella no hubiese visto el problema y todavia estaria arrancándome los pelos.

Muchas gracias!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
compilador de linea de comandos avmm2004 Varios 3 24-03-2008 21:55:25
linea de comandos y bpl juanmdq Varios 8 25-01-2008 15:44:18
Registro de base interbase por linea de comandos gguilleng Firebird e Interbase 2 23-04-2007 11:06:06
Ayuda con conexion a bases de datos desde linea de comandos k_bron Conexión con bases de datos 3 31-08-2006 21:23:31
Iniciar servicio desde linea de comandos Sergio J. Varios 3 23-12-2004 13:48:06


La franja horaria es GMT +2. Ahora son las 11:24:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi