我在方法中有这个代码:
int startApp()
{
ProcessStartInfo proc = new ProcessStartInfo();
proc.FileName = "File.exe";
proc.Arguments = "someArguments";
proc.RedirectStandardInput = false;
proc.RedirectStandardOutput = true;
proc.UseShellExecute = false;
proc.CreateNoWindow = true;
Process p = Process.Start(proc);
Console.WriteLine(p.StandardOutput.ReadLine()); // Here it works!
return p.Id;
}
然后我使用前一个方法返回的进程ID运行此代码:
void readText(int processId)
{
Process p = Process.GetProcessById(processId);
Console.WriteLine(p.StandardOutput.ReadLine()); // Here does not work!
}
它无法说"StandardOut has not been redirected or the process hasn't started yet"
。
有人知道为什么我无法从Process.StandardOutput
读取?
答案 0 :(得分:3)
你做不到;如果你启动了这个过程,你只能使用标准{输入,输出,错误},甚至只能从启动它的过程对象开始。
安排使用于启动过程的过程对象可用于需要读取标准输出的代码。