0

アプリケーションがコンソールに何かを書き込もうとしているときに、イベントをキャプチャする必要があります。

Console.WriteLine("Any text");

イベントまたはメソッドでコンソール出力に送信されたテキストを取得することは可能ですか?

4

3 に答える 3

1

1 つの方法は、この記事に示すように、新しいストリーム オーバーライドを作成することです。

http://mel-green.com/2010/01/progressstream/

次に、これをコンソールが書き込むストリームとして設定する必要があります。

MemoryStream ms = new MemoryStream();
ProgressStream progressStream = new ProgressStream(ms);
Console.SetOut(new StreamWriter(progressStream));

次に、進行状況ストリームのイベントを使用して、いつ書き込まれるかを確認します。

于 2012-11-06T10:20:31.360 に答える
0

これはあなたに役立つかもしれません:

using System;
using System.IO;

namespace nsStreams
{
    public class Redirect
    {
        static public void Main ()
        {
            FileStream ostrm;
            StreamWriter writer;
            TextWriter oldOut = Console.Out;
            try
            {
                ostrm = new FileStream ("./Target.txt", FileMode.OpenOrCreate, FileAccess.Write);
                writer = new StreamWriter (ostrm);
            }
            catch (Exception e)
            {
                Console.WriteLine (e.Message);
                return;
            }
            Console.SetOut (writer);

            Console.SetOut (oldOut);
            writer.Close();
            ostrm.Close();
            Console.WriteLine ("Done");
        }
    }
}
于 2012-11-06T10:24:20.670 に答える