1. ホーム
  2. c#

[解決済み] Process.start: 出力の取得方法は?

2022-03-15 05:12:48

質問

Mono/.NETアプリから外部のコマンドライン・プログラムを実行したいのですが、どうすればよいですか? 例えば、次のように実行したいです。 メンコーダ . 可能でしょうか。

  1. コマンドラインのシェル出力を取得し、それをテキストボックスに書き込むには?
  2. 経過時間のプログレスバーを表示するための数値を取得するには?

解決方法は?

を作成する際に Process オブジェクトセット StartInfo を適切に設定します。

var proc = new Process 
{
    StartInfo = new ProcessStartInfo
    {
        FileName = "program.exe",
        Arguments = "command line arguments to your executable",
        UseShellExecute = false,
        RedirectStandardOutput = true,
        CreateNoWindow = true
    }
};

を実行した後、プロセスを開始し、そこから読み出す。

proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
    string line = proc.StandardOutput.ReadLine();
    // do something with line
}

を使用することができます。 int.Parse() または int.TryParse() を使用して文字列を数値に変換します。読み込んだ文字列の中に無効な数値がある場合は、最初に文字列操作を行う必要があるかもしれません。