。退出的事件问题

时间:2012-06-07 15:47:49

标签: c# process

.Exited并非适用于所有情况,例如:当我关闭显示图片的负责应用程序时,C:\foo.png我没有得到MessageBox.Show("exited!");

这是我的代码:

         public static void TryOpenFile(string filename)
                {
                        Process proc = new Process();
                        proc.StartInfo = new ProcessStartInfo(filename);
                        proc.EnableRaisingEvents = true;
                        proc.Exited += (a,b) => { MessageBox.Show("Exited!"); }
                        proc.Start();
                    }

我如何调用函数TryOpenFile(@"C:\foo.png");。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您是否可以打开图像编辑程序?当您调用proc.Start()时,如果该进程已在运行,则重用现有进程。你应该检查proc.Start()的返回值,看看是否是这种情况。

来自MSDN

  

返回值

     

true 如果启动了流程资源;假如果没有新的假   流程资源已启动(例如,如果现有流程是   重复使用)。

     

...

     

<强>说明

     

...

     

如果StartInfo属性的FileName成员指定的进程资源是   已经在计算机上运行,​​没有启动其他进程资源。相反,   重复使用正在运行的流程资源,并返回 false