Как зафиксировать стандартный вывод / ошибку процесса? - PullRequest
3 голосов
/ 03 сентября 2010

Как записать стандартный вывод / ошибку процесса, начатого с Process.Start() до string?

Ответы [ 3 ]

1 голос
/ 11 октября 2016

Для решения проблем взаимоблокировки используйте этот подход:

ProcessStartInfo висит на "WaitForExit"?Почему?

Хорошо работает в моем коде ...

0 голосов
/ 03 апреля 2014

Пример кода ниже:

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.CreateNoWindow = false;
        psi.UseShellExecute = false;
        psi.FileName = "C:\\my.exe";
        psi.WindowStyle = ProcessWindowStyle.Hidden;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;

        using (Process exeProcess = Process.Start(psi))
        {
            exeProcess.WaitForExit();

            var exitCode = exeProcess.ExitCode;
            var output = exeProcess.StandardOutput.ReadToEnd();
            var error = exeProcess.StandardError.ReadToEnd();

            if (output.Length > 0)
            {
                // you have some output
            }


            if(error.Length > 0)
            {
                // you have some error details
            }
        }
0 голосов
/ 03 сентября 2010

Путем перенаправления и чтения потока.

...