llamar comandos del DOS sin mostrar nada

Iniciado por franfis, 12 Junio 2012, 03:31 AM

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

franfis

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

x64core

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?

franfis

Probe en una ventana simple agregandole system("comando") y poniendole comentarios a showwindows() pero al ejecutarse se abre la ventana dos

x64core

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

franfis

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..."

x64core

que estas utilizando? te dije que utilizaras la shellexecute con el parametros SW_HIDE

franfis

#6
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