Ich verwende die Process-Klasse, um eine exe auszuführen.wartet mein Prozess auf Eingabe?
Die Exe ist eine Drittanbieter-Konsolenanwendung, die ich nicht kontrolliere.
Ich möchte wissen, ob der Prozess auf Eingabe in der Befehlszeile wartet.
Sollte es einen Unterschied machen, beabsichtige ich, die Anwendung zu beenden, sollte sie auf Eingaben warten.
Es gibt geeignete Ereignisse für die Ausgabe von dem Programm, das darauf wartet, gelesen zu werden, aber ich kann nichts Ähnliches sehen, wenn der Prozess geduldig auf die Eingabe wartet.
ProcessStartInfo info = new ProcessStartInfo();
info.FileName = "myapp.exe";
info.CreateNoWindow = true;
info.UseShellExecute = false;
info.RedirectStandardError = true;
info.RedirectStandardInput = true;
info.RedirectStandardOutput = true;
process.StartInfo = info;
process.OutputDataReceived += new DataReceivedEventHandler(process_OutputDataReceived);
process.ErrorDataReceived += new DataReceivedEventHandler(process_ErrorDataReceived);
process.Start();
process.BeginOutputReadLine();
process.BeginErrorReadLine();
process.WaitForExit();
Wie erkenne ich, dass mein Prozess auf Eingabe wartet?
Ihr Problem steigt mein Interesse. Ich habe einige Macken gemacht, um modale Schleifen in GUI-Anwendungen zu erkennen (siehe meine Fragen), aber für Konsolen-Anwendungen habe ich bis jetzt noch keine gute Lösung gefunden ... – jdehaan