确定这里有一个简单的应用控制台我做了测试 RedirectStandardOutputProcess.StartInfo.

    foreach (c In [Enum].GetValues(GetType(ConsoleColor))
    {
        Console.ForegroundColor = c
        Console.WriteLine("Test")
    }

下面是应用程序的结果。

Result of the Console Application.

所以我们可以看到美丽的颜色显示在控制台上。

然而,当我读到的 StandardOutput.BaseStream 没有颜色的信息,没有ANSI码,什么都没有。

我怎么捕捉信息的颜色的重新定向流?

有帮助吗?

解决方案

简短的回答是,流作为给你的.净 Console 类是纯粹基于字符和返回的唯一文本的数据。

得到扩展色的信息,就必须P/Invoke the Win32API ReadConsoleOutput.这将返回,除其他事项外,一系列的 COLOR_INFO 结构含有色属性的每个字符。你可能会想看看的 ReadConsoleOutput pinvoke.net 页面 开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top