Cattura l’output da processo non correlato

Mi stavo chiedendo se è ansible catturare l’output di un processo separato in esecuzione su Windows?

Ad esempio, se ho un’app console in esecuzione, potrei eseguire una seconda app, un’app per moduli e fare in modo che l’app catturi l’output dall’app della console e lo visualizzi in una casella di testo?

Puoi farlo:

Process[] p = Process.GetProcessesByName("myprocess.exe"); StreamReader sr = p[0].StandardOutput; while (sr.BaseStream.CanRead) { Console.WriteLine(sr.ReadLine()); } 

È ansible redirect lo stdout / stderr (stream di output / errore standard) di un processo se si è il primo a farlo. Per un esempio dai un’occhiata a questo .

Catturando il stream di output di un processo che non è stato avviato da te, beh, questa è tutta una questione diversa. Non sono sicuro che possa essere fatto.

Ma se hai il controllo sul codice sorgente di entrambe le app, ci sono altri modi per comunicare, come pipe / remoting / WCF, e così via …

La risposta selezionata è lungi dall’essere corretta. Prima di tutto p [0] .StandardOutput è già uno StreamReader In secondo luogo, non puoi leggere StandardOutput di altri processi, riceverai un’eccezione!