好的,这是我用来测试 RedirectStandardOutput
的一个简单的控制台应用程序的Process.StartInfo
.
foreach (c In [Enum].GetValues(GetType(ConsoleColor))
{
Console.ForegroundColor = c
Console.WriteLine("Test")
}
以下是申请结果。
所以我们可以看到颜色在控制台上显示得很漂亮。
但是,当我阅读
StandardOutput.BaseStream
时没有颜色信息,没有 ANSI 代码,什么都没有。如何捕获重定向流上的颜色信息?
最佳答案
简短的回答是 .NET 提供给您的流 Console
类完全基于字符并且只返回文本数据。
要获得扩展的颜色信息,需要 P/Invoke Win32 API ReadConsoleOutput .除其他外,这将返回一个数组 COLOR_INFO包含每个字符的颜色属性的结构。您可能想查看 ReadConsoleOutput pinvoke.net page开始。
关于redirectstandardoutput - 为什么 RedirectStandardOutput 没有必要的 ANSI 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1963954/