Ho avuto difficoltà a ottenere l'output di un "processo secondario" (uno avviato internamente da un processo blackbox che sto monitorando tramite C# System. Diagnostics.Process)C#: reindirizzare l'output standard di un processo già in esecuzione
Ho preso il consiglio dato dalla risposta del mio post precedente: here. E lì puoi trovare i dettagli di quello che ho passato.
A questo punto, anche se sono in grado di individuare il processo ssh generato da process1.exe, che sto monitorando. Non riesco a reindirizzare l'output al mio programma C#, perché è un "processo già in esecuzione" e non è stato avviato direttamente da C#.
Sembra che tutte le proprietà impostate su un oggetto System.Diagnostics.Process abbiano effetto solo se si avvia esplicitamente tale processo dall'applicazione C#; se qualche altro "processo non gestito" ha avviato il processo, l'impostazione di questo reindirizzamento non ha alcun effetto, poiché il processo è già stato avviato da qualcosa che non ha specificato il reindirizzamento di cui ho bisogno.
Esiste un modo per reindirizzare l'output di un processo che è già stato avviato (un processo avviato da un programma per il quale non è possibile precedere il reindirizzamento prima dell'avvio di questo processo)?
Com'è possibile? Sto già reindirizzando tutto l'output da process1.exe alla mia applicazione C#. Nel momento in cui process1 lancia internamente ssh.exe (process2), ricevo 3 ulteriori righe di output da process1, quindi l'output cessa, poiché process2 è l'unica cosa che emette (sospetto) e non posso reindirizzare process2 output, perché viene avviato internamente da process1 (per il quale non posso controllare il reindirizzamento). –