关机:等待程序关闭

关机:等待程序关闭

当我按下关机按钮时,无论哪个小程序/任务需要更多时间,Windows 都会很乐意拒绝关机。当我按下物理关机按钮时,无论如何我都希望 Windows 关机,但 veracrypt 除外,它需要足够的时间来重新加密驱动器、从内存中清除密钥以及退出时执行的其他任何操作。

这能实现吗?

(由于 veracrypt 需要正确关闭,因此全局强制关闭显然不是一个选项)

答案1

我之所以在上面询问您所使用的 Windows 版本,是因为您声称“当我按下关机按钮时,无论哪个简单的程序/任务需要更多时间,Windows 都会很乐意拒绝关机对于 XP 之后的任何版本来说都不正确。

正如 Raymond Chen 所谈到的Windows Vista 中的电源管理变化既然 Windows 使您的程序更难阻止关机,那么您如何阻止关机呢?,从 Vista 开始,只有实现 ShutdownBlockReasonCreate()此功能可以在关机启动后阻止关机过程,即使如此,用户也可以随时选择强制关机。这样做是为了防止人们(尤其是笔记本电脑用户)过去常常启动关机但后来发现系统一直处于打开状态,因为它因某些应用程序而卡住,因此过热或耗尽电池。

您可以非常轻松地测试这一点。打开一堆应用程序,如果有未保存的更改,则不允许关闭它们。例如,记事本、画图、Word 等,它们都会弹出“要保存吗?”类型的对话框。现在,如果您将电源按钮设置为关机并按下它,您将看到一个显示所有打开的应用程序的窗口,它们将要无论您是否快速保存了您的工作,都会被杀死。

到目前为止,我还没有遇到过滥用 ShutdownBlockReasonCreate() 来阻止 Windows 关闭的消费者应用程序。这并不是说不存在这种行为不当的应用程序,但您声称每个小程序都可以阻止 Windows 关闭的说法已经不再正确。如果您确实遇到了这种情况,那么显然您的终端出了问题,因为这不是 Windows 自 Vista 以来应该有的行为方式(并且确实如此)。

相关内容