У меня есть часть кода C#, которая вызывает процесс, указывая на другой исполняемый файл. В некоторых редких случаях происходит нарушение прав доступа, и последнее заканчивается операционной системой с сообщением «program.exe перестает работать ... окна могут проверять онлайн-решение, бла-бла ...». Я могу убить и закрыть процесс, используя WaitForExit с предопределенным таймаутом, но указанное окно продолжает висит. Можно ли как-то его уволить?Отключить сообщение "blah.exe перестало работать". C#
код, который вызывает внешнюю программу следующим образом:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;
startInfo.UseShellExecute = false;
startInfo.RedirectStandardError = true;
startInfo.FileName = pathToExe;
startInfo.ErrorDialog = false;
startInfo.Arguments = arguments;
string error = "";
using (Process exeProcess = System.Diagnostics.Process.Start(startInfo))
{
try
{
if (!exeProcess.WaitForExit(timeout))
{
/// timed out
/// clean up, set err message
exeProcess.Kill();
error = "timed out";
}
else if (exeProcess.ExitCode != 0)
{
/// aborted itself on error
/// clean up, return err message
error = exeProcess.StandardError.ReadToEnd();
}
else
{
//finished correctly
//do some useful stuff
}
}
catch(Exception e)
{
error = e.Message;
}
}