我正在开发一个程序,用户可以从该程序启动任何应用程序.程序将存储启动的应用程序的进程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文件.