Lesen, ein anderer Prozess' stdout in C++

In Windows, gibt es eine Möglichkeit, einen Prozess einzuleiten, in C++ und dann Lesen, was es ausgespuckt in stdout aus, wenn es fertig ist? Der Prozess muss ausgeführt werden, mit erhöhten rechten (unter Vista oder höher), wenn nötig.

Ich bin derzeit mit ShellExecuteEx (), um den Vorgang zu starten und läuft eine while-Schleife, bis GetExitCodeProcess() gibt nicht länger STILL_ACTIVE über die lpExitCode parameter (mit WaitForSingleObject () - Aufruf tut einem 100 msec warten, während jeder iteration).

  • Können Sie umleiten von stdout in eine named pipe, die beim Start des Prozesses? (Kein C++ Entwickler, damit diese ein Kommentar)
  • Das problem ist, dass zum ausführen einer erhöhten Prozess, den Sie verwenden müssen ShellExecuteEx() mit der runas verb. Und ShellExecuteEx() unterstützt keine Ausgabe-Umleitung AFAICT.
InformationsquelleAutor RobH | 2010-11-04
Schreibe einen Kommentar