如何在任何进程(.exe)前获得通知。记事本在 C# 中关闭?
问问题
872 次
1 回答
9
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 包装器,但这需要更多的手动管理,因为它为您提供了有关关闭 Win32 窗口的信息,不仅仅是流程。
于 2012-04-05T05:27:26.460 回答