In Windows, c'è un modo per avviare un processo in C++ e poi leggere ciò che sputa in stdout quando è finito? Il processo deve essere eseguito utilizzando privilegi elevati (su Vista o successivi) se necessario.Leggi lo stdout di un altro processo in C++
Attualmente sto utilizzando ShellExecuteEx() per avviare il processo ed eseguire un ciclo while finché GetExitCodeProcess() non restituisce più STILL_ACTIVE tramite il parametro lpExitCode (con una chiamata WaitForSingleObject() che esegue un attesa di 100 msec durante ogni iterazione) .
È possibile reindirizzare lo stdout in una named pipe quando si avvia il processo? (Non è uno sviluppatore C++, quindi questo è un commento) –
Il problema è che per eseguire un processo elevato è necessario usare 'ShellExecuteEx()' con il verbo 'runas'. E 'ShellExecuteEx()' non supporta il reindirizzamento dell'output AFAICT. –