2008-09-17 12 views
3

私は、フレームワーク2.0のProcessオブジェクトを使用してスクリプトとコマンドラインプログラムを実行するプログラムをdot netで作成しています。自分のプログラムでプロセスの画面バッファにアクセスできるようにしたい。私はこれを調べて、コンソールのstdoutとstderrのバッファにアクセスする必要があるようです。管理されたコードを使用してこれがどのように達成されるのか、.net管理コードを使用してコマンドウィンドウをスクラップするスクリーン

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

あなたはSystem.Diagnostics.ProcessクラスにはStandardError、StandardOutput、およびStandardInputプロパティを使用してこれを実現することができますhttp://msdn.microsoft.com/en-us/library/ms684965(VS.85).aspx

答えて

2

を参照してください。

MSDNには、プロセスのnice example of redirecting standard in and outがあります。

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

StandardInputを使用するには、ProcessStartInfo.UseShellExecuteをfalseに設定し、ProcessStartInfo.RedirectStandardInputをtrueに設定する必要があります。それ以外の場合は、StandardInputストリームに書き込むと例外がスローされます。

+0

迅速な対応に感謝します。しかし私はストリームを読んでみたくない。私は、コマンドウィンドウに表示されているコンソールバッファにアクセスしたい。これは、HTMLページのスクリーンスクレイピングと同様です。 –

+0

私は、コンソールのAttachConsoleメソッドと、文字と属性のデータの長方形にアクセスするためのReadConsoleOutputメソッドを使う必要があると思います。私はマネージコードでこれを行う方法を知らない。 –

関連する問題