質問

OK、これは私がテストするために作成した簡単なコンソールアプリケーションです。 RedirectStandardOutputProcess.StartInfo.

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

そして以下が申請結果です。

Result of the Console Application.

ご覧のとおり、コンソールでは色が美しく表示されます。

しかし、読んでみると、 StandardOutput.BaseStream 色情報もANSIコードも何もありません。

リダイレクトされたストリームのカラー情報を取得するにはどうすればよいですか?

役に立ちましたか?

解決

簡単に言うと、.NET によって提供されるストリームは Console クラスは純粋に文字ベースであり、テキスト データのみを返します。

拡張カラー情報を取得するには、Win32 API を P/Invoke する必要があります。 読み取りコンソール出力. 。これは、とりわけ、次の配列を返します。 COLOR_INFO 各文字の色の属性を含む構造体。見てみるといいかもしれません ReadConsoleOutput pinvoke.net ページ 始めるために。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top