挂钩关闭应用程序

时间:2013-06-17 10:35:05

标签: c# .net windows

从我的C#应用​​程序中,我试图在其关闭时(仅在其进程结束时)从另一个(特定)应用程序获取通知。从我发现的,钩子这个过程是一个可能的解决方案,但我没有设法使其工作。任何人都可以帮助我或提出另一种解决方案。

4 个答案:

答案 0 :(得分:3)

使用WMI监控流程结束事件。有一些example code here

答案 1 :(得分:3)

您可以使用Process类来执行此操作,特别是Exited事件:

var process = Process.GetProcessesByName("notepad").Single();
// or Process.GetProcessById() if you have the ID
process.EnableRaisingEvents = true;
process.Exited += YourHandler;

答案 2 :(得分:1)

我只是通过每100个刻度检查一个流程来完成这些事情。它可能很贵,但这取决于你的需要。 你可以使用Process.GetProcessById()来获取

答案 3 :(得分:1)

有一种非常简单的方法可以执行此操作,前提是您所使用的流程是用户流程,或者您是以管理员身份运行:

var processes = Process.GetProcessesByName("Notepad");
Console.WriteLine("waiting...");
foreach(var p in processes )
    p.WaitForExit();
Console.WriteLine("notepad has exited...");

使用它的最简单方法是生成一个新任务,该任务将运行此代码,然后利用回调在进程退出后执行您的aditional工作。