Process クラスを使って外部のファイルを .NET プログラムから実行することができる。
その際、実行するファイルがコンソールアプリだと、その実行結果(出力)を取得したい場合が多い。 Process を実行する際に標準出力(通常はコマンドプロンプト)をリダイレクトしてやれば、出力を得ることができる。
具体的には下記の流れだ。
ソースコードを次に示す。
var process = new Process();
process.StartInfo = new ProcessStartInfo("ファイル名", "コマンドライン引数");
// コマンドプロンプトをださない
process.StartInfo.CreateNoWindow = true;
// シェル実行しない
process.StartInfo.UseShellExecute = false;
// 標準出力をリダイレクト
process.StartInfo.RedirectStandardOutput = true;
//実行
process.Start();
// 標準出力を読み取ってデバッグ出力
string output = process.StandardOutput.ReadToEnd();
output = output.Replace("\r\r\n", "\n");
Debug.Write(output);
Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。
好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。
詳しくは Web mixi で。