c#Process.Start()没有返回正确的响应

我正在开发一个程序,用户可以从该程序启动任何应用程序.程序将存储启动的应用程序的进程ID,因此它可以在用户想要时终止它.

Process application = new Process();
application.StartInfo.FileName = txtApplicationToOpen.Text;

if (application.Start())
{
    Debug.WriteLine("started");
    lstCurrentlyOpenApplications.Items.Add(txtApplicationToOpen.Text);
    _openApplications.Add(application);
}

我面临的问题:

if(application.Start())中的部分被调用,只有当我打开说exe文件或excel文件时(虽然excel文件返回的PID不会杀死excel程序).

当我打开mp3,mp4或图像文件时,它不会进入if语句

尝试获取进程的ID时,它返回以下错误

System.InvalidOperationException: No process is associated with this object.

最佳答案 您必须使用ProcessStartInfo.UseShellExecute才能“执行”文档(并让Windows找到与给定文件关联的程序).在那里查看其他答案:
ShellExecute vs. Process.Start.

没有该标志,只能启动exe文件.

点赞