2009-02-27 10 views
5

En la programación Win32 en C:Ejecutar y Capture un programa de otro

Cuál es la mejor manera de ejecutar un programa de consola Win32 dentro de otro programa de Win32, y que el programa que se inició la ejecución capturar la salida? Por el momento, hice que el programa redireccionara la salida a un archivo, pero estoy seguro de que debo ser capaz de abrir algún tipo de tubería.

Respuesta

5

Utilice la API CreateProcess Win32 para iniciar el proceso secundario.

paso a una estructura STARTUPINFO con hStdInput, hStdOutput y hStdError maneja establece en identificadores de archivo que se abrió (ya sea reales o archivos de archivos de memoria asignada deben trabajar). No necesita especificar los tres, puede redireccionar solo los que realmente necesita; el caso más común es hStdOutput.

Si desea comunicarse con el proceso secundario (a través de hStdInput), debe esperar a que se inicialice llamando al WaitForInputIdle.

+0

Gracias, dirigir stdoutput a un archivo de mapa de memoria fue exactamente lo que buscaba. –

Cuestiones relacionadas