2014-03-04 66 views
0

Shellexecute如果成功,则返回大于32的值。如果该功能失败,它将返回一个指示失败原因的错误值。但是在Process.start的情况下,我没有得到任何这种选择。我尝试使用Process.ExitCode,但它只会在进程关闭后才会返回值。但我想检查过程是否成功启动。还有什么等同于process.start中的shellexecute返回值?从Process.start返回值

+0

Process.Start返回布尔值,如果它开始OK,请参阅MSDN链接http://msdn.microsoft.com/en-us/library/e8zac0ca.aspx – Baldrick

回答

0

,但我想检查过程是否被成功

从文档开始为Process.Start

返回值true表明一个新的进程资源开始。如果由StartInfo属性的FileName成员指定的进程资源已在计算机上运行,​​则不会启动其他进程资源。相反,正在运行的进程资源被重用并返回false。

该布尔值并不表示发生错误,只表明该进程已在运行。

如果发生真正的错误,即异常,则可以捕获Win32Exception并使用NativeErrorCode属性获取您之后的错误代码。

只有两个其他例外可能被抛出; InvalidOperationException或ObjectDisposedException。这些都不需要错误代码来诊断问题的原因。