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

时间:2014-10-05 08:59:02

标签: javascript c# vb.net visual-studio

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

1 个答案:

答案 0 :(得分:1)

好的,基于你的评论,我认为你想要执行一个控制台程序并将其输出重定向到你的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