Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: franfis en 12 Junio 2012, 03:31 am



Título: llamar comandos del DOS sin mostrar nada
Publicado por: franfis en 12 Junio 2012, 03:31 am
Holas, como puedo hacer un programa que ejecute comandos del DOS pero sin mostrar la pantalla negra que sale?? por ejemplo que copie un archivo a otro.

Como podria hacer para que no aparezca la ventana negra??
Gracias...     ;D


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: x64core en 12 Junio 2012, 06:04 am
si lo estas haciendo con w32 entonces le pasas un 0 que significa el argumento HIDE o si estas usando una libraria creo que seria
lo mismo, como lo haces?


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: franfis en 12 Junio 2012, 14:31 pm
Probe en una ventana simple agregandole system("comando") y poniendole comentarios a showwindows() pero al ejecutarse se abre la ventana dos


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: x64core en 13 Junio 2012, 10:17 am
una opcion es usar la ShellExecute y el ultimo parametro debe ser  SW_HIDE, pero en todo caso poder obtener el handle y con
ShowWIndows y el parametro  SW_HIDE tambien


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: franfis en 14 Junio 2012, 16:44 pm
Bueno obteniendo el handle de la ventana y usando ShowWindow(hwnd,SW_HIDE) se esconde la ventana pero de todas maneras aparece la otra ventana que dice "Presione cualquier tecla para continuar..."


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: x64core en 15 Junio 2012, 09:44 am
que estas utilizando? te dije que utilizaras la shellexecute con el parametros SW_HIDE


Título: Re: llamar comandos del DOS sin mostrar nada
Publicado por: franfis en 15 Junio 2012, 20:53 pm
Probe con esto :

 ShellExecute(NULL, "open","cmd.exe", "ipconfig", NULL, SW_SHOW);

De todas maneras tienen que aparecer dos ventanas; uno del propio programa y otro del Shellexecute().

Pero con la opcion que me dijiste (SW_HIDE) es decir:
ShellExecute(NULL, "open","cmd.exe", "ipconfig", NULL, SW_HIDE); se oculta la ventana del Shellexecute pero no hay forma de esconder la ventana que dice "Presione cualquier tecla para continuar..."

Me olvidaba, ese comando "ipconfig" no lo toma el cmd, queda en ;

C:\Archivos de programa\Microsoft Visual Studio\MyProjects\shellexecute>

con la opcion mostrar claro  ;D , con la opcion SW_HIDE no se ve