在C#中捕获标准输出的内容

Sej*_*nus 6 .net c#

我正在使用外部库(.dll),其中一些方法(包括构造函数)将内容写入标准输出(也称为控制台),因为它旨在与控制台应用程序一起使用.但是我试图将它合并到我的Windows窗体应用程序中,所以我想捕获此输出并以我喜欢的方式显示它.即我窗口中的"状态"文本字段.

我能找到的只是ProcessStartInfo.RedirectStandardOutput,虽然它显然不符合我的需要,因为它在示例中与其他应用程序(.exe)一起使用.我没有执行外部应用程序,我只是使用DLL库.

Zha*_*ger 7

创建一个StringWriter,并为其设置标准输出.

StringWriter stringw = new StringWriter();
Console.SetOut(stringw);
Run Code Online (Sandbox Code Playgroud)

现在,打印到控制台的任何内容都将被插入到StringWriter中,您可以随时通过调用获取其内容stringw.ToString(),然后您可以执行类似的操作textBox1.AppendText(stringw.ToString());(因为您说您有一个winform并具有状态文本字段)来设置您的内容文本框.