c# считывание ошибки в запущенном процессе
Есть форма содержащая код, который запускается обычной кнопкой.
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 ?
Источник: Stack Overflow на русском