C# 防止第三方应用程序崩溃阻止程序运行?
我有一个接口,为另一个程序生成一个输入文件来计算泵的性能,然后运行该程序并收集输出。如果输入不符合第三方程序中的计算要求,第三方程序将崩溃,并给出隐藏的错误消息,无论您点击“OK”多少次,这些消息都将继续弹出。第三方程序只是我拥有的一个.exe文件,我自己没有访问源代码的权限 有没有办法调用这个程序,但如果它崩溃,允许我的接口杀死它?目前,我唯一的解决办法是打开我的任务管理器并手动终止进程 下面是我调用程序运行的代码部分。“cpump.exe”是我指的第三方程序。我确实意识到它永远不会返回False,因为程序在代码中的该点之前挂起。请原谅我的无知/拙劣的风格,我绝不是一个程序员/开发人员,只是一个试图自动化一些枯燥工作的机械工程师C# 防止第三方应用程序崩溃阻止程序运行?,c#,crash,C#,Crash,我有一个接口,为另一个程序生成一个输入文件来计算泵的性能,然后运行该程序并收集输出。如果输入不符合第三方程序中的计算要求,第三方程序将崩溃,并给出隐藏的错误消息,无论您点击“OK”多少次,这些消息都将继续弹出。第三方程序只是我拥有的一个.exe文件,我自己没有访问源代码的权限 有没有办法调用这个程序,但如果它崩溃,允许我的接口杀死它?目前,我唯一的解决办法是打开我的任务管理器并手动终止进程 下面是我调用程序运行的代码部分。“cpump.exe”是我指的第三方程序。我确实意识到它永远不会返回Fal
ProcessStartInfo start = new ProcessStartInfo();
start.FileName = "c:\\cpump\\file\\cpump.exe";
start.WindowStyle = ProcessWindowStyle.Hidden;
start.UseShellExecute = false;
start.WorkingDirectory = "c:\\cpump\\file\\";
start.Arguments = "/k";
start.CreateNoWindow = true;
int exitCode;
// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
proc.WaitForExit();
// Retrieve the app's exit code
exitCode = proc.ExitCode;
}
if (exitCode == 0)
{
MessageBox.Show("Sucessful calculation complete.");
return true;
}
else
{
return false;
}
您需要将代码放入一个try-catch中。您还可以检查类似的问题和建议的解决方案。您需要将代码放入一个try-catch中。您还可以检查类似的问题和建议的解决方案。试一试应该去哪里?我过去试过一次,但似乎没有任何帮助。此外,我不在乎错误消息是什么,因为程序吐出的内容根本没有用处,我只想显示我自己的消息,上面写着“进程失败”之类的内容。试一试应该去哪里?我过去试过一次,但似乎没有任何帮助。另外,我不在乎错误消息是什么,因为程序发出的消息根本没有用处,我只想显示我自己的消息,上面写着“进程失败”之类的。