Ich baue eine kleine Konsole-Anwendung, die manchmal die Windows-Befehlszeile verwendet, um einen Befehl zu senden und dann empfangen und die Ausgabe anzuzeigen.Kann nicht lesen Ausgabe von Konsole Befehl von Code ausgeführt
Das Öffnen einer neuen Befehlszeileninstanz war einfach. Das Senden von Befehlen aus meiner Anwendung erforderte ein wenig Suchen, aber es funktionierte. Jedoch kann ich nicht in der Lage sein, die Ausgabe von der Befehlszeile zu lesen.
ist mein Code basiert auf:
How to redirect Standard Input/Output of an application
How do I run Command line commands from code
ich die gleiche Art und Weise des Lesens der Ausgabe auf meine Anwendung angewendet, und es funktioniert nicht, erst in dem Augenblick Ich schließe meine Anwendung, während ich heruntergefahren bin, kann ich einen Blick auf die Ausgabe werfen.
Es funktioniert, aber am wahrscheinlichsten habe ich Code verlegt, der verhindert, dass ich die Ausgabe zu sehen, bis ich meine Anwendung herunterfahren.
Kann mir jemand dabei helfen?
Code:
Process p = new Process();
p.StartInfo.FileName = Environment.GetEnvironmentVariable("comspec");
p.StartInfo.ErrorDialog = false;
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
//Execute the process
if (p.Start())
{
//Get the output stream
StreamReader outputReader = p.StandardOutput;
StreamReader errorReader = p.StandardError;
// Assign a Stream Writer to send the Commands
StreamWriter commandWriter = p.StandardInput;
// Send the "Dir" command to the command line instance.
commandWriter.Write("dir");
commandWriter.Write(commandWriter.NewLine);
p.WaitForExit();
//Display the result
Console.WriteLine(outputReader.ReadToEnd());
outputReader.Close();
errorReader.Close();
commandWriter.Close();
}
Natürlich habe ich es total vergessen. Danke für die Aufmerksamkeit. –
Was ist "ConsoleDataReceived"? – TMarshall
@TMarshall: Lesen Sie weiter. In diesem Code sind zwei Methoden definiert: 'Main' und' ConsoleDataReceived'. – Tergiver