Ich rufe qaac.exe
(AAC-Encoder) von Process.Start()
. Das Programm qaac.exe
wird während der Codierung in dieselbe Zeile ausgegeben. Ich bin mir nicht sicher, was der technische Ausdruck dafür ist, aber es bewirkt, dass das Programm nicht beendet wird, obwohl es die Datei bearbeitet hat. Hier ist mein Code:Umleiten von Standard-Ausgang Casues-Programm, um nicht zu beenden
string output = null;
var proc = new Process();
proc.StartInfo.FileName = "qaac.exe";
proc.StartInfo.Arguments = "-v256 -q2 file.wav";
proc.StartInfo.WorkingDirectory = @"C:\";
proc.StartInfo.CreateNoWindow = true;
proc.StartInfo.RedirectStandardOutput = true;
proc.StartInfo.RedirectStandardError = true;
proc.StartInfo.UseShellExecute = false;
proc.Start();
output = proc.StandardOutput.ReadToEnd();
output += "\r\n";
output += proc.StandardError.ReadToEnd();
proc.WaitForExit();
Wenn ich in der -s
Argument übergeben an die qaac.exe
App im Code (Konsolnachrichten unterdrücken) über es gut funktioniert. Also meine Frage ist, wie greife ich die Ausgabe von einem externen Programm, das in die gleiche Zeile im Konsolenfenster schreibt?
Siehe [Link] (http://stackoverflow.com/questions/2012509/process-standardoutput-readtoend-always-empty) Zweite Antwort (14+) – Graffito