我的程序进程被强制关闭(比如windows任务管理器)。正常情况下,我在程序关闭后处理一些数据,但是被强制关闭了,所以按照正常步骤是处理不了的。请问如何才能在强制关闭后执行我程序的代码?我的进程及线程水平不是很高,望达人具体说说,谢谢!

解决方案 »

  1.   

    1. 禁止强制关闭 可以隐藏进程 或者挂接API
    2. 使用一个监视进程 监视你的程序,发现非正常退出则做补救工作
      

  2.   

    可以Hook ZwTerminateProcess(),当发现关闭句柄为本进程时,做数据清理。然后把ZwTerminateProcess()正常执行下去
      

  3.   

    有一点要注意,要处理的对象是其他进程的调用ZwTerminateProcess()函数。
    所以,你要么对除自己以外的其他进程全部hook,要么就是在驱动里做一个全局HOOK,但要判断是否为本进程来调用。
    监控到ZwTerminateProcess()调用时,要想办法,通知你的应用程序清理
      

  4.   

    用SHE试试,没有试过,应该可以的。