Process.start: 出力を取得するにはどうすればいいですか? 質問する

Process.start: 出力を取得するにはどうすればいいですか? 質問する

Mono/.NET アプリから外部のコマンド ライン プログラムを実行したいと思います。たとえば、mencoderを実行したいのですが、可能ですか?

  1. コマンドラインシェルの出力を取得して、テキストボックスに書き込むにはどうすればいいですか?
  2. 経過時間とともに進行状況バーを表示するための数値を取得するには?

ベストアンサー1

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()文字列を数値に変換できます。読み取った文字列に無効な数値文字が含まれている場合は、最初に何らかの文字列操作を行う必要がある場合があります。

おすすめ記事