Can I handle the killing of my windows process through the Task Manager?
I have a windows C++ application (app.exe). When the app is closed, I need to perform some cleanup tasks specific to my application. What happens when this process (app.exe) is killed through the Task Manager. Assuming that the application is still responsive, can I somehow handle this situation in my app.exe?
I am looking for something similar to how kill <pid>
in Linux will send the SIGTERM signal to the process indicated by pid. I could then register my own signal handler for SIGTERM and perform the cleanup.
Solution 1:
There are two ways to kill application in Task Manager.
- Killing through Applications tab would roughly be equivalent of
SIGTERM
. Application may intercept it and do more processing, since it's basically sending a "close window" message. Message to catch isWM_CLOSE
. - Killing through Processes tab would roughly be equivalent of
SIGKILL
. There is nothing you can do to intercept that, short of monitoring user's actions in Task Manager's listbox and End Process button, or having a watchdog process that will see when the first one is killed.
Alternatively, design the application in a way that does not require cleanup, or in a way that it will perform cleanup at startup.