如何在任何进程(.exe)ex之前获取通知。记事本在C#中关闭?
答案 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窗口的信息,不仅仅是进程。