In Windows gibt es eine Möglichkeit, einen Prozess in C++ zu starten und dann lesen, was es in Stdout ausgespuckt wurde, wenn es fertig ist? Der Prozess muss bei Bedarf mit erhöhten Rechten (unter Vista oder höher) ausgeführt werden.Lesen Sie einen anderen Prozess 'stdout in C++
Ich bin derzeit ShellExecuteEx() unter Verwendung des Verfahrens und den Betrieb eines while-Schleife zu starten, bis GetExitCodeProcess() nicht mehr STILL_ACTIVE über den lpExitCode Parameter gibt (mit einem WaitForSingleObject() eine 100 ms während jeder Iteration warten zu tun) .
Können Sie Stdout in eine Named Pipe umleiten, wenn Sie den Prozess starten? (Kein C++ - Entwickler, daher ist dies ein Kommentar) –
Das Problem ist, dass Sie 'ShellExecuteEx()' mit dem 'runas'-Verb verwenden müssen, um einen erhöhten Prozess auszuführen. Und 'ShellExecuteEx()' unterstützt keine Ausgabeumleitung AFAICT. –