我可以通过任务管理器处理我的Windows进程被杀?

Uma*_*air 6 windows process

我有一个Windows C++应用程序(app.exe).当应用程序关闭时,我需要执行一些特定于我的应用程序的清理任务.当通过任务管理器终止此进程(app.exe)时会发生什么.假设应用程序仍然响应,我可以在app.exe中以某种方式处理这种情况吗?

我正在寻找类似于kill <pid>Linux中将SIGTERM信号发送到pid指示的进程的方法.然后我可以为SIGTERM注册我自己的信号处理程序并执行清理.

Iva*_*ica 11

在任务管理器中有两种方法可以终止应用程序.

  • 杀死" 应用程序"选项卡大致相当于SIGTERM.应用程序可以拦截它并进行更多处理,因为它基本上是发送"关闭窗口"消息.要抓住的消息是WM_CLOSE.
  • 杀死进程选项卡大致相当于SIGKILL.如果没有监视用户在任务管理器的列表框和结束进程按钮中的操作,或者有一个监视程序进程可以看到第一个被杀死的时间,那么你无法拦截它.

或者,以不需要清理的方式设计应用程序,或者以启动时执行清理的方式设计应用程序.