5

フレームワーク 2.0 の Process オブジェクトを使用してスクリプトとコマンド ライン プログラムを実行するプログラムを dot net で作成しています。プログラム内のプロセスのスクリーン バッファにアクセスできるようにしたいと考えています。これを調査したところ、コンソールの stdout および stderr バッファにアクセスする必要があるようです。マネージ コードを使用してこれを行う方法を知っている人はいますか?

コンソール画面から文字と属性データのブロックを読み取るには、タスクに接続されている Windows コンソールの AttachConsole と ReadConsoleOutput を使用する必要があると思います。これを行う必要があるのはマネージド コードです。

http://msdn.microsoft.com/en-us/library/ms684965(VS.85).aspxを参照してください。

4

1 に答える 1

2

これは、System.Diagnostics.Process クラスの StandardError、StandardOutput、および StandardInput プロパティを使用して実現できます。

MSDN には、標準をプロセス内外にリダイレクトする良い例があります。

開始したプロセスの出力のみをリダイレクトできることに注意してください。起動しなかった外部プロセスは、事後に stdout をリダイレクトすることはできません。

また、StandardInput を使用するには、ProcessStartInfo.UseShellExecute を false に設定し、ProcessStartInfo.RedirectStandardInput を true に設定する必要があることに注意してください。それ以外の場合、StandardInput ストリームへの書き込みで例外がスローされます。

于 2008-09-17T03:54:09.607 に答える