Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Como Ejecutar Un Programa No Windows

Iniciado por josette, 07 de Abril de 2006, 10:34:15 AM

« anterior - próximo »

josette

    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?


josette

 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?

TheAzazel

 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







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.