好的,这是一个简单的控制台应用程序,用于测试RedirectStandardOutput
的{{1}}。
Process.StartInfo
以下是申请结果。
因此我们可以看到控制台上的颜色很漂亮。
然而,当我读到 foreach (c In [Enum].GetValues(GetType(ConsoleColor))
{
Console.ForegroundColor = c
Console.WriteLine("Test")
}
时,没有颜色信息,没有ANSI代码,没有任何内容。
如何捕获重定向流上的颜色信息?
答案 0 :(得分:1)
简短的回答是.NET Console
类给你的流是纯粹基于字符的,只返回文本数据。
要获取扩展颜色信息,需要P / Invoke Win32 API ReadConsoleOutput。除其他外,这将返回包含每个字符的颜色属性的COLOR_INFO结构数组。您可能需要查看ReadConsoleOutput pinvoke.net page才能开始使用。