Unity-从通过Process.Start()调用的exe获取输出

时间:2019-02-25 07:14:13

标签: unity3d

我正在使用以下代码统一运行一个进程:

void Loadexe()
{
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.FileName = @"C:\Users\test\Desktop\myapp.exe";
    Process.Start(startInfo);
}

myapp正在执行并返回其输出;一旦该过程完成,我试图获取输出以在Unity中对其进行解析。运行代码时,我看到控制台窗口出现了几秒钟,然后消失了,但是我不知道如何实际路由进程的输出,看看发生了什么。

运行Process. Start()时可以收集进程的输出吗?

1 个答案:

答案 0 :(得分:0)

机会的评论确实为我指明了正确的方向。

我认为该过程是Unity的一部分,但它是纯C#。将重定向标准输出设置为true并创建一个流读取器后,您可以轻松地将输出另存为字符串并在Unity中进行处理。

void Start()
{
    using (Process process = new Process())
    {

        process.StartInfo.FileName = @"C:\Users\test\Desktop\myapp.exe";
        process.StartInfo.UseShellExecute = false;
        process.StartInfo.RedirectStandardOutput = true;
        process.Start();

        StreamReader reader = process.StandardOutput;
        string output = reader.ReadToEnd();

        UnityEngine.Debug.Log(output);

        process.WaitForExit();
    }
}