У меня есть программа на C #, которая запускает дочерний процесс и записывает его вывод в строку.Это работает на большинстве компьютеров Windows (Windows 7 и новее), но при наличии антивируса Касперского Process.StandardOutput.ReadToEnd()
возвращает null
.Там нет кода ошибки или исключения.Дочерний процесс является доверенным консольным приложением.Процесс запускается 5 или 6 секунд.
Код для запуска дочернего процесса выглядит следующим образом:
ProcessStartInfo psi = new ProcessStartInfo();
psi.UseShellExecute = false;
psi.CreateNoWindow = true;
psi.RedirectStandardOutput = true;
psi.RedirectStandardError = true;
psi.WindowStyle = ProcessWindowStyle.Hidden;
psi.FileName = "icao.exe";
psi.Arguments = im_path + "image.jpg";
Process p = new Process();
p.StartInfo = psi;
p.Start();
string output = p.StandardOutput.ReadToEnd();
string error = p.StandardError.ReadToEnd();
MessageBox.Show(error);
p.WaitForExit();
int exitCode = p.ExitCode;
MessageBox.Show(exitCode+"");
Почему output
в конечном итоге становится null
, когда Kaspersky установленнет?