运行带有用于启动另一个应用程序并从控制台获取输出的参数的C#exe

时间:2018-09-18 08:51:15

标签: c# console output

我有一个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上的输出?需要帮助!

1 个答案:

答案 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语句