Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: josette en 07 de Abril de 2006, 10:34:15 AM

Título: Como Ejecutar Un Programa No Windows
Publicado por: josette en 07 de Abril de 2006, 10:34:15 AM
    Estoy haciendo una aplicación y necesito llamar a un pequeño programa en modo DOS. He probado con execl, pero me da error. Com se puede hacer esto?
Título: Como Ejecutar Un Programa No Windows
Publicado por: TheAzazel en 07 de Abril de 2006, 10:59:41 AM
 prueba con system()
Título: Como Ejecutar Un Programa No Windows
Publicado por: josette en 07 de Abril de 2006, 11:01:38 AM
 pero al programa le tengo que pasar parametros, pruebo con
system("potrace -o out"); por ejemplo?

EDIT: lo he probado y funciona pero se abre una ventana de ms-dos ( de esas negras) y claro, no es deseable que esta ventana aparezca. Hay alguna otra alternativa?
Título: Como Ejecutar Un Programa No Windows
Publicado por: TheAzazel en 07 de Abril de 2006, 01:30:31 PM
 En windows si no quieres usar el system, te queda esto otro que es mas limpio y da mas control:

           STARTUPINFO si;
           PROCESS_INFORMATION pi;
           ZeroMemory( &si, sizeof(si) );
           si.cb = sizeof(si);
           ZeroMemory( &pi, sizeof(pi) );
 
          // Ejecutamos la aplicacion como un proceso independiente
    if(!CreateProcess( NULL, // No module name (use command line).
  "myapp.exe", // Command line.
  NULL,             // Process handle not inheritable.
  NULL,             // Thread handle not inheritable.
  FALSE,            // Set handle inheritance to FALSE.
  0,                // No creation flags.
  NULL,             // Use parent's environment block.
  NULL,             // Use parent's starting directory.
  &si,              // Pointer to STARTUPINFO structure.
  &pi ))         // Pointer to PROCESS_INFORMATION structure.
 {
  AfxMessageBox("Fatal error at loading application",MB_ICONSTOP);
  return;
 }
   
       // Podemos esperar a que finalice la aplicacion
       //WaitForSingleObject( pi.hProcess, INFINITE );

       // Cerramos los manejadores.
       CloseHandle(pi.hProcess);
       CloseHandle(pi.hThread);


saludos
Título: Como Ejecutar Un Programa No Windows
Publicado por: zupervaca en 07 de Abril de 2006, 02:28:30 PM
 Tambien dispones de la funcion ShellExecute