我有一个exe文件,该文件具有一些参数-另一个应用程序的路径以及一些要从该应用程序打开的文件。该应用程序的输出将显示在我exe的控制台中。 但是我无法从控制台获得输出。 我有代码:
ProcessStartInfo psi = new ProcessStartInfo("\"" + dllpath + "\\newapplication.exe" + "\"");
Process p = new Process();
psi.UseShellExecute = false;
psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
p.Start();
该过程成功启动,然后我必须在该过程中打开通过另一个类发生的文件。因此,在打开文件后,会进行一些提取并将结果显示在控制台上。
当我给p.WaitForExit();
时,除了启动应用程序外没有其他反应!我如何按照我的代码获取StandardOutput上的输出?需要帮助!
答案 0 :(得分:0)
这是正确的方法:
string outputProcess = "";
string errorProcess = "";
using (Process process = new Process())
{
process.StartInfo.FileName = path;
process.StartInfo.Arguments = arguments;
process.StartInfo.WindowStyle = ProcessWindowStyle.Maximized;
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.StartInfo.RedirectStandardError = true;
process.Start();
outputProcess = process.StandardOutput.ReadToEnd();
errorProcess = process.StandardError.ReadToEnd();
process.WaitForExit();
}
当您有using
对象时,请记住使用IDisposable
语句