【问题标题】:Return values from Process.start [duplicate]从 Process.start 返回值 [重复]
【发布时间】:2014-03-04 05:49:45
【问题描述】:

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

【问题讨论】:

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


【解决方案1】:

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

来自Process.Start 的文档:

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

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-07-02
    • 2015-05-25
    • 2014-09-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多