C#跟踪进程是否被杀死

时间:2014-05-19 02:42:20

标签: c# .net process

是否存在事件或方法来捕获从我的应用程序外部杀死进程的时间。

我在下面尝试了这两个事件,但当我在TaskManager中杀死进程时,它不会报告任何内容。

    private void startServer() 
    {
        proc = new Process();
        proc.Exited += proc_Exited;
        proc.Disposed += proc_Disposed;

    }

    void proc_Disposed(object sender, EventArgs e)
    {
        //Report here
    }

    void proc_Exited(object sender, EventArgs e)
    { 
        //Report here
    }

1 个答案:

答案 0 :(得分:2)

如果您在应用程序中关闭(通过用户单击x按钮时的代码),而不是从外部(从任务管理器中删除),则只会触发已退出和已处置的事件。当某人从任务管理器中杀死/终止您的应用程序时,没有简单的方法可以捕获。你可以做api钩子捕获它。请查看API hooking revealed如何操作。