Process.Exited仅在使用Windows应用程序时触发

时间:2014-09-19 15:37:00

标签: c# wpf windows process

我一直试图解决这个问题,我的程序启动了一个过程(GUI应用程序,如记事本或(地铁)图像),如下所示:

System.Diagnostics.Process execute = new System.Diagnostics.Process();
execute.StartInfo.FileName = (System.IO.Path.GetTempPath() + @"{NR6T7YHYGFDGY77FM74766JTF63IJ78899DV884}\" + System.IO.Path.GetFileNameWithoutExtension(App.args[1]));
execute.EnableRaisingEvents = true;
execute.Exited += delegate
{
    File.Delete(System.IO.Path.GetTempPath() + @"{NR6T7YHYGFDGY77FM74766JTF63IJ78899DV884}\" + System.IO.Path.GetFileNameWithoutExtension(App.args[1]));
    App.Current.Shutdown();
};
execute.Start();  

然后调用this.Hide()成为后台进程的等效项。现在的问题是,如果我打开一个用Word,照片(Metro)或任何其他可以卸载的应用程序打开的文件,则执行.Exited 永远不会触发。但是,如果我打开一个用记事本,油漆或其他任何无法卸载的应用程序打开的文件,执行。退出 开火..我已经能够排除最大的潜在问题:

  1. 由于execute.EnableRaisingEvents = true;进程正在引发事件。
  2. this
  3. 不同,没有什么能阻止我的代码
  4. 我尝试使用Process.WaitForExit();,但这不起作用
  5. 请帮助伙伴。

0 个答案:

没有答案