即使进程已启动,Process.Start也会返回false

时间:2016-05-24 05:12:31

标签: c# .net wpf

我们在应用程序中有以下功能:

public static Process StartApp(string fileName, bool waitForProcessExit)
{
    Process proc = new Process
    {
        StartInfo =
        {
            FileName = fileName,
            UseShellExecute = true,
            WindowStyle = ProcessWindowStyle.Normal,
            ErrorDialog = false
        }
    };

    bool processStarted = proc.Start();

    if (!processStarted)
    {
        int errorCode = Marshal.GetLastWin32Error();

        if (errorCode == 0)
        {
            throw new Exception("Unknown Error!");
        }

        throw new Win32Exception(errorCode);
    }

    if (waitForProcessExit)
    {
        proc.WaitForExit();
    }

    return proc;
}

执行此功能时,变量processStarted在某些情况下包含false。这发生在例如打开Microsoft Word文件并且Word已在运行(Excel也是如此)。使用.jpg文件作为参数时,结果是相同的:Process.Start返回false。

当参数waitForProcessExit为真时,我们的应用程序需要阻塞。

我们如何实现这一目标?

0 个答案:

没有答案