2009-02-27 4 views
5

In win32 Programmierung in C:ausführen und Capture ein Programm von einer anderen

Was ist der beste Weg, um ein win32-Konsolenprogramm in einem anderen win32 Programm auszuführen, und hat das Programm, das die Ausführung erfaßt die Ausgabe gestartet? Im Moment machte ich das Programm Redirect-Ausgabe in eine Datei, aber ich bin sicher, ich muss in der Lage sein, eine Art von Rohr zu öffnen?

Antwort

5

Verwenden Sie die Win32-API CreateProcess, um den untergeordneten Prozess zu starten.

Pass es eine STARTUPINFO Struktur mit hStdInput, hStdOutput und hStdError auf Datei gesetzt Griffe Griffe Sie geöffnet (entweder echte Dateien oder Memory-Mapped-Dateien funktionieren sollte). Sie müssen nicht alle drei angeben, Sie können nur diejenigen umleiten, die Sie wirklich benötigen; häufigster Fall ist hStdOutput.

Wenn Sie mit dem untergeordneten Prozess kommunizieren möchten (über hStdInput), müssen Sie auf die Initialisierung warten, indem Sie WaitForInputIdle aufrufen.

+0

Danke, stdoutput zu einer Speicherkarte Datei war genau das, was ich wollte. –