2009-02-27 15 views
5

Nella programmazione win32 in C:Esegui e Capture un programma da un altro

cosa è il modo migliore per eseguire un programma di console win32 all'interno di un altro programma Win32, e avere il programma che avvia l'esecuzione catturare l'uscita? Al momento ho reso il programma reindirizzare l'output su un file, ma sono sicuro che devo essere in grado di aprire una sorta di pipe?

risposta

5

Utilizzare l'API Win32 CreateProcess per avviare il processo figlio.

Passo ad esso una struttura STARTUPINFO con hStdInput, hStdOutput e hStdError maniglie impostato handle di file è stato aperto (sia i file reali o file mappati in memoria dovrebbe funzionare). Non è necessario specificare tutti e tre, è possibile reindirizzare solo quelli di cui si ha realmente bisogno; caso più comune è hStdOutput.

Se si desidera comunicare con il processo figlio (tramite hStdInput), è necessario attendere l'inizializzazione chiamando WaitForInputIdle.

+0

Grazie, la conversione di stdoutput in un file di mappa di memoria era esattamente ciò che cercavo. –

Problemi correlati