exec??????

Started by Prg, January 14, 2009, 05:34:09 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Prg

hola :)
he querido utilizar la función exec para lanzar un archivo dcb que me compile y ejecute código de bennu, sin embargo me dice que:
Quote
C:\Documents and Settings\Administrador\Mis documentos\edtorfpg>bgdi lanza_g.dcb
"bgdi" no se reconoce como un comando interno o externo,
programa o archivo por lotes ejecutable.


el dcb tiene:
Quote
bgdc lanza_g.prg
bgdi lanza_g.dcb
(sí, en la carpeta donde está el bat están las librerías y demás archivos del bennu)

y aunque ejecute el dcb aparte y funciona, desde bennu no lo puedo hacer, ¿qué puedo hacer?

además, veo que  exec(_P_NOWAIT, "interno\lanza_g_d.bat", 0, NULL);
tiene al final dos espacios que nunca utilizamos, donde dice 0 y donde dice null. busqué en el wiki, sin embargo no encontré la función, no dudo que esté, y que lo que pasó es que no supe buscar, pero si alguien me dice algún truco para hacer lo que quiero o qué son los dos últimos valores se lo agradecería. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

.bat no es un ejecutable... tenes que ejecutar el cmd.exe y como parametro el .bat... (obviamente con los parametros extra que el cmd requiere para tal fin)
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Sandman

#2
The start command can be useful too (for info, in a terminal do: start /?).
If you want to be able to execute bgdc or bgdi from anywhere, you should add the directory they are in to the environment variable path. But maybe you knew this already. :)

[EDIT]
I will document exec() asap.
-- Sandman

Prg

Quote.bat no es un ejecutable... tenes que ejecutar el cmd.exe y como parametro el .bat... (obviamente con los parametros extra que el cmd requiere para tal fin)

ya veo, pues como ya había copiado archivos por medio de un bat, pues me acostumbré ;)
entonces intentaré como me dices, mmmmmm!! espero poder.

QuoteThe start command can be useful too (for info, in a terminal do: start /?).
If you want to be able to execute bgdc or bgdi from anywhere, you should add the directory they are in to the environment variable path. But maybe you knew this already. Smiley

[EDIT]
I will document exec() asap.

:) Gracias.
QuoteI will document exec() asap.
y es muy buena idea, aunque son nuevas funciones, por lo mismo intentamos probarlas en cuanto se puede, pero no sabemos qué si y qué no hacer con ellas. :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

Prg

pongo esto para futuras referencias.
(Gracias Sandman por el tip)

exec(_P_WAIT, "interno\lanza_g_d.bat", 0, NULL);   //exec solicita que se ejecute el bat que se encuentra en la carpeta interno, a partir del directorio actual

el bat tiene:
Quotestart interno\bgdc.exe interno\lanza_g.prg
start interno\bgdi.exe interno\lanza_g.dcb
el bgdc se encuentran en la misma carpeta del bat, sin embargo es necesario especificarlo para que no lo busque en el directorio principal de nuestro programa.

creo que también funciona si sólamente tenemos el dcb, y le decimos al bat sólamente
start interno\bgdi.exe interno\lanza_g.dcb

el lanza_g se compila y luego se ejecuta, permitiendo que trabaje en distintos sistemas operativos (al contrario si fuera un exe diretamente).

en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

entonces funciona directo contra un bat?

por otro lado, no uses start en el bat, ya que el start sirve para no detener la ejecucion del bat, con lo que podes estar ejecuntando un dcb anterior al que se esta compilando.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

usando el bat funciona directo, yo lo uso para hacer copias de archivos al ejecutar el bennu (en el proyecto que detectaba qué librerías se usan, hago un bat con fputs, y luego lo lanzo para hacer una carpeta con las librerías que se necesitan y sus dependencias), y para lanzar otros programas como en este caso, sin embargo si no uso start, me sucede lo que les comentaba al principio, no corre.

el bat lo toma como parte del código interno, incluso cuando ejecuta, manda los mensajes de lo que ejecutó a la consola del programa principal.

esta función está genial :)

veré lo que me comentas para buscar una solución. gracias.
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)

SplinterGU

si, pero start no espera la ejecucion de cada comando... lanza, lanza, y luego terminan y terminan, si el programa a compilar es grande o tu pc no muy poderosa, puede que se ejecute un dcb anterior si todo lo tenes en el mismo bat.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

Prg

no lo sabía, sin embargo tengo un sólo bat. gracias por la información. he liberado una versión del fpg editor que usa esto al hacer doble click sobre un gráfico, a mí no me ha provocado problemas, según yo sólo tengo dos bgdi actuando al mismo tiempo, sin embargo, si puedes verificar en linux esto. de cualquier forma investigaré otra forma de hacerlo o una forma de romper con esto, al menos me documentaré más con esta función. gracias splinter :)
en humos puedes mover la camara con los cursores. es necesario para los niveles a partir del dos :)