如何在任何进程(.exe)ex之前获取通知。记事本退出C#?

时间:2012-04-05 05:17:07

标签: c# process

如何在任何进程(.exe)ex之前获取通知。记事本在C#中关闭?

1 个答案:

答案 0 :(得分:8)

最简单的方法是为要监控的记事本流程创建System.Diagnostics.Process

  Process p = Process.GetProcessesByName("notepad.exe").First();
  p.Exited += (sender, args) => Debug.WriteLine("Process has exited!");

理论上,您可以对所有正在运行的进程(使用Process.GetProcesses())执行此操作,但这不会使您能够收到任何FUTURE流程的通知,只是启动监控时运行的流程。

一个更低级别的解决方案,可以为您提供有关正在关闭的任何进程/窗口的信息,使用CBT Hooks,提供.NET包装器here,但这需要更多的手动管理,因为它给出了关于关闭Win32窗口的信息,不仅仅是进程。