在C#中重定向stdout和stderr的输出时保留颜色

时间:2010-01-01 22:22:19

标签: c# winforms

我在WinForms应用程序中包装命令行进程并重定向输出,以便可以将其传送到RTF控件或列表框中。能够在文本出现时保留文本的前景色,这样可以在表单中正确显示。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

很可能不是。彩色控制台输出使用SetConsoleTextAttribute API调用完成,该调用在控制台屏幕缓冲区上运行。

如果从控制台应用程序重定向输出,则无法使用控制台屏幕缓冲区。如果重定向输出,SetConsoleTextAttribute将返回零(表示失败),这意味着应用程序甚至无法设置颜色。