从另一个 C# 程序捕获 C# 可执行输出

本文关键字:可执行 输出 程序 另一个 | 更新日期: 2023-09-27 18:32:35

我正在执行一个C#程序,即来自另一个C#程序的.exe。 但是.exe在其程序中有一些Console.WriteLine()。我想将标准输出输入到我的 C# 程序中。

例如

考虑一个C#可执行文件,即1.exe,还有另一个程序2.cs。

我从 2.cs 1.exe 打电话。 现在控制台从 1 显示一些输出。.exe。但是我希望我的程序 2.cs 中的输出用于向用户显示信息。

可能吗?请帮忙

谢谢Sai sindhu

从另一个 C# 程序捕获 C# 可执行输出

您可以使用 ProcessStartInfo.RedirectStandardOutput Property

Process compiler = new Process();
compiler.StartInfo.FileName = "csc.exe";
compiler.StartInfo.Arguments = "/r:System.dll /out:sample.exe stdstr.cs";
compiler.StartInfo.UseShellExecute = false;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.Start();    
Console.WriteLine(compiler.StandardOutput.ReadToEnd());
compiler.WaitForExit();

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput.aspx

您必须重定向标准输出流,请查看 MSDN 以获取更多信息。

当进程将文本写入其标准流时,该文本是 通常显示在控制台上。通过重定向标准输出 流,您可以操作或抑制进程的输出。为 例如,您可以筛选文本,以不同的方式设置其格式,或编写 输出到控制台和指定的日志文件。