C# 防止第三方应用程序崩溃阻止程序运行?

C# 防止第三方应用程序崩溃阻止程序运行?,c#,crash,C#,Crash,我有一个接口,为另一个程序生成一个输入文件来计算泵的性能,然后运行该程序并收集输出。如果输入不符合第三方程序中的计算要求,第三方程序将崩溃,并给出隐藏的错误消息,无论您点击“OK”多少次,这些消息都将继续弹出。第三方程序只是我拥有的一个.exe文件,我自己没有访问源代码的权限 有没有办法调用这个程序,但如果它崩溃,允许我的接口杀死它?目前,我唯一的解决办法是打开我的任务管理器并手动终止进程 下面是我调用程序运行的代码部分。“cpump.exe”是我指的第三方程序。我确实意识到它永远不会返回Fal

我有一个接口,为另一个程序生成一个输入文件来计算泵的性能,然后运行该程序并收集输出。如果输入不符合第三方程序中的计算要求,第三方程序将崩溃,并给出隐藏的错误消息,无论您点击“OK”多少次,这些消息都将继续弹出。第三方程序只是我拥有的一个.exe文件,我自己没有访问源代码的权限

有没有办法调用这个程序,但如果它崩溃,允许我的接口杀死它?目前,我唯一的解决办法是打开我的任务管理器并手动终止进程

下面是我调用程序运行的代码部分。“cpump.exe”是我指的第三方程序。我确实意识到它永远不会返回False,因为程序在代码中的该点之前挂起。请原谅我的无知/拙劣的风格,我绝不是一个程序员/开发人员,只是一个试图自动化一些枯燥工作的机械工程师

        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中。您还可以检查类似的问题和建议的解决方案。

试一试应该去哪里?我过去试过一次,但似乎没有任何帮助。此外,我不在乎错误消息是什么,因为程序吐出的内容根本没有用处,我只想显示我自己的消息,上面写着“进程失败”之类的内容。试一试应该去哪里?我过去试过一次,但似乎没有任何帮助。另外,我不在乎错误消息是什么,因为程序发出的消息根本没有用处,我只想显示我自己的消息,上面写着“进程失败”之类的。