Process.start: how to get the output?

后端 未结 9 1403
無奈伤痛
無奈伤痛 2020-11-21 23:56

I would like to run an external command line program from my Mono/.NET app. For example, I would like to run mencoder. Is it possible:

  1. To get
9条回答
  •  有刺的猬
    2020-11-22 00:59

    When you create your Process object set StartInfo appropriately:

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

    then start the process and read from it:

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

    You can use int.Parse() or int.TryParse() to convert the strings to numeric values. You may have to do some string manipulation first if there are invalid numeric characters in the strings you read.

提交回复
热议问题