Alternativa a SYSTEM(); ???

Discusión en general sobre Gemix.

Alternativa a SYSTEM(); ???

Postby erkosone » Wed Oct 21, 2009 10:29 am

Existe alguna manera de invocar un archivo .exe o .bat desde un programa GEMIX, pero con la particularidad de no ceder el control del programa al de ejecucion de ese bat o exe??

Me explico:

El caso es que para todas las herramientas de desarroyo que tengo creadas en gemix, las he metido en un Pendrive USB..
Y claro.. asi puedo programar un rato en el curro en los momentos libres, he creado un programa en Gemix que tiene varios iconos, al picar en uno de ellos me ejecuta el programa X, pero como es normal se me queda congelada la ventana del programa Principal que ha llamado al otro..

Esto tiene alguna solución? o es y sera asi siempre?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Alternativa a SYSTEM(); ???

Postby CicTec » Wed Oct 21, 2009 12:03 pm

De momento lo unico es SYSTEM, pero ya esta planteado hacer otras funciones mas especificas que hacen exactamente lo que pides tu, no se si llegare a hacerlas para esta beta, pero estan ya en el TODO.
User avatar
CicTec
 
Posts: 16571
Joined: Thu Jul 31, 2008 10:18 pm

Re: Alternativa a SYSTEM(); ???

Postby erkosone » Wed Oct 21, 2009 10:30 pm

Ok, como siempre gracias por la informacion CicTec, realmente sera una buena funcion esta.
Muy util para dejar tareas en segundo plano ejecutandose sin que se pierda el control del juego..
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Alternativa a SYSTEM(); ???

Postby erkosone » Thu Oct 22, 2009 10:53 pm

Gran descubrimiento para mi y espero que a alguien mas le sea util!

Se trata de como usar la funcion system();

Si la usamos asi: System("miarchivo.exe"); el control del programa se bloquea a espera de que finalize "miarchivo.exe"..

Si lo hacemos de esta manera: System("Explorer miarchivo.exe"); de una manera que no entiendo, ni me interesa entender.. tenemos el control en nuestro programa Gemix y se ejecuta en paralelo miarchivo.exe.



Espero que a alguien mas le sirva de ayuda, yo cuando he hecho la prueba me he quedado fascinado hehehehehe...
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Alternativa a SYSTEM(); ???

Postby CicTec » Thu Oct 22, 2009 11:58 pm

mmmm, pero parece no funcionar en todo, por ejemplo he probado algo como:
SYSTEM("explorer notepad.exe"); y no va bien
mientra:
SYSTEM("notepad.exe"); si que va bien

Si de momento te funciona con algunas cosas, pues esta bien, pero mas adelante hare funciones mas en condiciones para eso.
User avatar
CicTec
 
Posts: 16571
Joined: Thu Jul 31, 2008 10:18 pm

Re: Alternativa a SYSTEM(); ???

Postby SimulatorOne » Thu Nov 19, 2009 9:40 pm

Desconocia este comando nuevo...
Permite escrivir rutas completas? incluyendo las unidades

C:\windows\notepad.exe
..\programa.exe

Mi caperpeta\programa.exe

No?
Solo puede abrir .exe?
PEro se pausa el programa, nuestro juego se pausa cuando abrimos un programa?

Es equivalente a la ventana de Inico\Ejecutar... de Windows?

Soy un poco curioso :P
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: Alternativa a SYSTEM(); ???

Postby CicTec » Thu Nov 19, 2009 9:44 pm

La ruta completa se puede escribir...
Dependiendo que cosa llamas, pausa el programa (tenemos planteado poner funciones mejores para eso).

La funcion en si ejecuta un comando, deberia funcionar tanto con EXE, como BAT, etc...
User avatar
CicTec
 
Posts: 16571
Joined: Thu Jul 31, 2008 10:18 pm

Re: Alternativa a SYSTEM(); ???

Postby erkosone » Fri Nov 27, 2009 7:20 pm

Si llamas a tu .EXE de esta manera se pausa.. SYSTEM("notepad.exe"); no hace falta poner la ruta porque windows la incluye en su variable de sistema PATH=
Si llamas a tu .EXE de ESTA OTRA MANERA .. SYSTEM( " EXPLORER notepad.exe " ); lo que estas haciendo es decirle al EXPLORER de WINDOWS que habra el .EXE, de esta manera, explorer se ejecuta un segundo y se cierra de nuevo, dejando en ejecuccion el .EXE, asi recuperamos el control de nuestro programa GEMIX.

El caso es que si lo haces en WINDOWS XP, EXPLORER lo trata como si fuera un archivo descargado de internet, y por supuesto te deja elejir entre "ABRIR" o "DESCARGAR"...
En windows Vista Directamente se habre sin mas jeje.. yo uso VISTA, asi que me va fenomeno.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Alternativa a SYSTEM(); ???

Postby SimulatorOne » Sat Nov 28, 2009 3:57 pm

y si creas un .bat?

Yo uso el Windows 7.

buen comando ;)
User avatar
SimulatorOne
 
Posts: 6626
Joined: Tue Nov 17, 2009 2:52 pm
Location: Barcelona

Re: Alternativa a SYSTEM(); ???

Postby erkosone » Mon Nov 30, 2009 9:49 am

Si usas un .bat lo mismo de lo mismo, si es llamado por medio con explorer recuperas el control, si lo llamas directamente no.. pues el archivo .bat crea una instancia de consola, que va a ser usada como mascara para la aplicacion que has llamado, "si se trata de un .exe que haga algo en concreto via comandos.." y hasta que esa ventanita no se cierre no recuperaras el control, si metes en el ajo a Explorer lo recuperas al instante, pues Explorer se encarga de crear la ventana de dos con el programa en ejecucion, y el se cierra instantaneamente devilviendo el control a Gemix.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Next

Return to General

Who is online

Users browsing this forum: No registered users and 0 guests