c# считывание ошибки в запущенном процессе

Рейтинг: 0Ответов: 0Опубликовано: 28.05.2023

Есть форма содержащая код, который запускается обычной кнопкой.

        Process p = new Process();
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardError = true;
        p.StartInfo.CreateNoWindow = true;
        p.StartInfo.FileName = @"C:\program.exe";
        p.StartInfo.Arguments = @" -test";
        p.Start();
        p.WaitForExit();
        string stderr = p.StandardError.ReadToEnd();
        MessageBox.Show(stderr.ToString());

Проблема в том, что если опциях процесса стоит

p.StartInfo.CreateNoWindow = true;

То форма как-бы зависает, к примеру нельзя нажать на вторую кнопку, если она есть.

p.StartInfo.CreateNoWindow = false;

При запуске появляется окно, как только, я его закрываю, срабатывает MessageBox который выводит ошибку (т.е всё работает).

Я так понимаю, когда стоит :

p.StartInfo.CreateNoWindow = true;

В невидемом режиме висит окно, которое никто не может закрыть и по этому не срабатывает вывод ошибки в MessageBox ?

Ответы

Ответов пока нет.