以下是以下代码... Process.Exited
事件处理程序方法未被调用......我还通过断点和所有这些来检查。进程已退出的事件处理程序方法未被调用
Process f;
private void button3_Click_1(object sender, EventArgs e)
{
f = new Process();
f.StartInfo.FileName = "tutorial.mp4";
f.EnableRaisingEvents = true;
f.Exited += new EventHandler(f_Exited);
f.Start();
}
private void f_Exited(object sender, System.EventArgs e)
{
//some stuff not important
}
是过程实际上退出?您似乎在播放.mp4文件。通常,Windows会启动一些媒体播放器来做到这一点,但之后通常由用户来关闭媒体播放器应用程序。该过程不会因为完成播放文件而自动退出。 – 2015-02-08 21:40:31
它是否已经手动或自动退出,不应该将它传递给退出方法? – 2015-02-08 21:42:22
是的。但是如果它根本没有退出,你永远不会看到这个事件。流程为什么会退出?你关闭媒体播放器吗?另外,我还没有检查过,但我不完全确定,当你以这种方式启动一个进程时(例如,使用Windows Shell启动一个基于文件关联的程序),“Process”对象甚至实际上与处理。在启动它之后,您应该仔细检查'Process'对象以确保它是。如果'Process'对象没有附加到实际的进程,显然你不会得到事件。 – 2015-02-08 21:47:18