Como ocultar las llamadas al sistema.

Iniciado por gxg, 13 Abril 2011, 23:45 PM

0 Miembros y 1 Visitante están viendo este tema.

gxg

Mi programa de tipo consola lo oculto con la funcion freecosole();

Este programa con un cierto periodo hace llamadas al sistema con system("");

Pero cada vez que hago una llamada con system(""); se ve en la pantalla durante 0.1 segundos una ventana de ms-dos

¿Como puedo ocultar eso?

El SO que estoy usando es windows XP.


Akai

system lo que hace es decirle al sistema que ejecute el comando x, siendo x la cadena que tu le pasas por parámetro. Estos comandos, como ya has notado, se ejecutan en la consola.

Como se hacen llamadas al sistema sin usar la consola? no uses system. Utiliza las funciones o código necesario para realizar lo que quieras hacer SIN necesidad de system.

(Pongo el ejemplo con funciones de Linux que son las que domino, pero la idea es la misma)

Ejemplo supongamos que system("cd /home/usuario" ) cambia el directorio de trabajo a /home/usuario. Esto, obviamente, nos saca la consola y es lo que queremos evitar.

Por otro lado, tenemos la función chdir que nos cambia el directorio de trabajo a donde nosotros le indiquemos, sin recurrir a system, es decir, realizamos la misma llamada al sistema, pero sin system.

(fin del ejemplo)

Si pudieses añadir un ejemplo de llamada system que quieres sustituir, se te podría encabezar hacia la msdn o ayudarte de una forma más concreta.

Edu

Tiene q tener algun parametro o algo, por ejemplo en vb6 es
Código (vb) [Seleccionar]
System "comando" , vbHide algo asi.

gxg

Mi programa  cada x segundos  accede a un servidor, lee un fichero en el servidor y el texto lo pasa a la función system. Osea que no puedo programar todas las funciones una por 1 xD.

Lo que estoy buscando es algo parecido a lo que dice XXX-ZERO-XXX .

Oblivi0n

Cita de: XXX-ZERO-XXX en 14 Abril 2011, 00:28 AM
Tiene q tener algun parametro o algo, por ejemplo en vb6 es
Código (vb) [Seleccionar]
System "comando" , vbHide algo asi.

No, esto no es vb.....
int system(const char *cadena);

Edu

Oblivi0n dices que el codigo que puse no es vb6? o q? yo bien dije "por ejemplo en vb6" para dar una opinion de como podria ser en C++

poitier

Cita de: gxg en 14 Abril 2011, 12:16 PM
Mi programa  cada x segundos  accede a un servidor, lee un fichero en el servidor y el texto lo pasa a la función system. Osea que no puedo programar todas las funciones una por 1 xD.

¿Y para qué le pasa el texto a la función system?  :rolleyes:

gxg

Porque así accedo a la consola de un ordenador que tenga ejecutandose mi programa, de forma remota.

Oblivi0n

Cita de: XXX-ZERO-XXX en 14 Abril 2011, 15:50 PM
Oblivi0n dices que el codigo que puse no es vb6? o q? yo bien dije "por ejemplo en vb6" para dar una opinion de como podria ser en C++

Nono, digo que en C/C++ funciona de modo diferente... xD (perdona si puede sonar mal la respuesta)

A el autor del post: Ahora mismo no estoy seguro, pero creo que con WinAPI hay funciones que tienen un uso similar a system  y que puedes pasar como parametro si la consola aparece oculta o no