2016-09-15 78 views
0

首先,对于问题标题感到抱歉,如果有更好的建议,我向他们开放。如何在启动的应用程序失败时关闭已启动的应用程序?

我所做的是我有一个程序启动一个可执行文件。我无法控制可执行文件。可执行文件可能会崩溃(然后选择发送报告和所有内容)。

我需要做的是,如果它崩溃,那么启动它需要注意,并关闭可执行文件。

有没有办法让这个控制?

+0

您是否在使用'Process.Start'启动过程?错误是否回到标准错误?也许这样的东西:http://stackoverflow.com/a/2709234/328193 – David

+0

什么是这个可执行文件,它是一个控制台应用程序?它失败时会关闭吗?它是否返回任何退出代码? – sallushan

+0

如果它“崩溃”,是不是已经“关闭”? – HardCode

回答

4

如果你正在使用的Process.Start那么你可以等待过程中使用Process.WaitForExit()来完成,像这样:

var proc = Process.Start(...); 
proc.WaitForExit(); 

如果不推出与的Process.Start的过程,这是现有的过程那么你可以先使用Process.GetProcessByNameProcess.GetProcessById,然后等待它。

值得注意的是,直到错误报告对话框被解除后才会返回。

+0

thx !! WaitForExit是否知道它是否崩溃但保持打开状态,操作系统窗口指示程序崩溃? – Cher

+0

不是,从技术上说,当对话框打开时,进程仍在运行,所以监视它的东西不会知道它崩溃,直到错误报告对话框被解除为止 –

+0

仅供参考 - “错误报告”是一个Windows功能,默认情况下处于启用状态被一个gpo禁用) - 它可以通过注册表更改被禁用,但是如果它在客户端机器上运行,通常不会对对话框有太多控制 –

相关问题