我正在使用以下代码统一运行一个进程:
void Loadexe()
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\Users\test\Desktop\myapp.exe";
Process.Start(startInfo);
}
myapp
正在执行并返回其输出;一旦该过程完成,我试图获取输出以在Unity中对其进行解析。运行代码时,我看到控制台窗口出现了几秒钟,然后消失了,但是我不知道如何实际路由进程的输出,看看发生了什么。
运行Process. Start()
时可以收集进程的输出吗?
答案 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();
}
}