从Process.start返回值

时间:2014-03-04 05:49:46

标签: c# vb.net shellexecute process.start

如果成功,

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

1 个答案:

答案 0 :(得分:0)

  

但我想检查流程是否成功启动

来自Process.Start的文档:

  

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

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

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

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