【发布时间】:2013-08-26 23:39:51
【问题描述】:
我编写了一个简单的测试程序 (TestProgram.exe) 来学习如何处理 CTRL_CLOSE_EVENT,以下是我的观察和我的问题:
1) 当我双击 TestProgram.exe 启动它时,如果我现在转到任务管理器,TestProgram.exe 列在“应用程序”下。当我在 TestProgram.exe 上执行“结束任务”时,我的 CTRL_CLOSE_EVENT 处理程序被调用。
但是
2) 当我打开命令提示符并启动 TestProgram.exe 时,它会列在任务管理器下的“后台进程”下,并且在相同的情况下执行“结束任务”不会导致 CTRL_CLOSE_EVENT。
我的真实应用程序按照上面案例 2) 中的描述使用。当用户在我的应用程序(在任务管理器的后台进程下列出)执行结束任务时,我想进行一些清理。
谢谢, 克里希纳
【问题讨论】:
-
哪个版本的 Windows?
-
你能在应用重启时进行清理吗?一般来说,如果用户从任务管理器中杀死你的应用程序,它就死了。对于安全性而言,没有其他方法可以接受 - 拥有足够权限的用户必须能够在不通知的情况下停止应用。
-
我明白了。但我在某处读到应用程序有一些时间,大约 10 秒来进行任何必要的清理。另外,正如我最初提到的,为什么我能够在上面的情况 1 中处理它而不是在上面的情况 2 中处理它?