【发布时间】:2009-11-10 00:03:24
【问题描述】:
我正在使用 Process 类来运行一个 exe。
exe 是我无法控制的第 3 方控制台应用程序。
我想知道进程是否正在等待命令行输入。
如果它有什么不同,我打算杀死等待输入的应用程序。
当程序有输出等待读取时,有合适的事件,但是当进程耐心等待输入时,我看不到任何类似的事件。
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();
如何检测我的进程正在等待输入?
【问题讨论】:
-
你的问题引起了我的兴趣。我做了一些怪癖来检测 GUI 应用程序中的模态循环(请参阅我的问题),但对于控制台应用程序,到目前为止我还没有找到一个好的解决方案......
标签: c# .net system.diagnostics