RE:COMO HAGO PARA QUE NO SALGA LA VENTANA DE DOS
Hola, si lo que quieres es invocar desde un programa en C/C++ un comando desde el interprete de los mismos (ms-dos) y no quieres que aparezca la ventana, no puedes usar system() ya que lo primero que hace es abrir la dicha ventana, para hacer lo que quieres usa la siguiente funcion:
// Ejecuta en el interprete de comandos la cadena indicada en cmdLine
// retorna 0 si fue satisfactoria la ejecucion, sino el codigo de error
// que ocurrio.
int execute(char *cmdLine)
{
PROCESS_INFORMATION procInfo;
STARTUPINFO startInfo;
ZeroMemory(&procInfo, sizeof(procInfo));
ZeroMemory(&startInfo, sizeof(startInfo));
startInfo.cb = sizeof(startInfo);
startInfo.dwFlags = STARTF_USESHOWWINDOW;
startInfo.wShowWindow = SW_HIDE; // esto indica ventana oculta
if (CreateProcess(NULL, cmdLine, NULL, NULL, true,
NORMAL_PRIORITY_CLASS, NULL, NULL, &startInfo,
&procInfo) == 0)
return (int) GetLastError();
// Espera a que termine la ejecucion del interprete
WaitForSingleObject(procInfo.hProcess, INFINITE);
CloseHandle(procInfo.hProcess);
CloseHandle(procInfo.hThread);
return 0;
}
Deberas incluir "windows.h".
El parametro cmdLine debe comenzar por "cmd /c ",
ej: "cmd /c copy *.* d:"
Si quieres ejecutar una secuencia de comandos encadenalos con ampersand. ej: "cmd /c c: & cd temp & dir"