在我的visual studio应用程序页面中显示正在运行的控制台程序数据输出

本文关键字:运行 控制台 程序 输出 数据 visual 我的 studio 应用程序 显示 | 更新日期: 2023-09-27 18:25:32

如何在我的visual studio应用程序页面上显示控制台中正在运行的程序数据输出。

在我的visual studio应用程序页面中显示正在运行的控制台程序数据输出

好吧,根据你的评论,我认为你想执行一个控制台程序,并将其输出重定向到你的visual studio输出窗口?以下示例在C#中

var processStartInfo = new ProcessStartInfo()
{
    FileName = "cmd.exe",
    Arguments = "/c ping www.google.de",
    WindowStyle = ProcessWindowStyle.Hidden, //to hide the cmd window
    RedirectStandardOutput = true, //needed to redirect the output
    UseShellExecute = false
};
var process = new Process()
{
    StartInfo = processStartInfo
};
if (process.Start())
{
    while (!process.StandardOutput.EndOfStream)
    {
         var outputLine = process.StandardOutput.ReadLine();
         if(outputLine != null)
             Debug.WriteLine(outputLine);
    }
}

并不是说也有可能使用事件process.OutputDataReceived += process_OutputDataReceived;,但只有当一整行打印到stdout时才会引发此事件。如果应用程序正在写入缓冲区,并且没有显式调用Console.Out.Flush();。Ping示例使用事件方法不起作用,所以我选择了同步读取。

如果您不想了解更多关于事件驱动方式的信息,请查看此处MSDN