Ich schreibe eine Anwendung in C #, die irgendwann eine Anwendung als untergeordneten Prozess mit der Klasse Process mit Asynchronous IO Umleitung wie folgt startet:
%Vor%Das Problem mit diesem Code ist, dass ich zwar stderr richtig in mein Textfeld umgeleitet habe, aber diese Umleitung scheint zu verbergen der Prozess ' stdout Ausgabe, die ich nicht umgeleitet werden soll!
Wenn ich stdout umleitung, kann ich sehen, wie es richtig umgeleitet wird, aber ist es nicht möglich, stderr nur umzuleiten und nicht stdout? Ich habe mich in Bezug auf dieses Thema umgeschaut und gegoogelt, aber alle Diskussionen scheinen bezüglich der Umleitung von stdout zu gehen ... wie zum Beispiel: Wie man den Standard-Output-Stream und den Standard-Fehler-Stream gleichzeitig asynchron liest
Ich wäre dankbar für jede Hilfe diesbezüglich!
Das ist nicht möglich, da Ausgabe- und Fehlerhandles gleichzeitig umgeleitet werden. MSDN Artikel STARTUPINFO beschreibt STARTF_USESTDHANDLES
Flag .
Aber es gibt eine gute Nachricht. Das Einbehalten der Ausgabe von Child-Prozessen ist weiterhin möglich. Du musst nur:
Rufen Sie also direkt nach dem Prozessstart
auf %Vor% und verwenden Sie dann Console.WriteLine in Ihrem DataReceived
-Handler.
Tags und Links .net c# process io io-redirection