gpt4 book ai didi

c++ - 使用自定义消息防止 Windows 关机

转载 作者:IT老高 更新时间:2023-10-28 22:29:31 27 4
gpt4 key购买 nike

当我在虚拟机运行时尝试关闭 Windows 时,VMWare Workstation 的表现非常酷:

VMWare prevents Windows shutdown with a custom message

通常,我们会看到“此程序正在阻止 Windows 关闭”消息,而不是新的“1 个虚拟机正在使用中”。

VMWare 如何做到这一点?我在 Google 上找不到任何关于它的 API。

最佳答案

您可以阅读有关 Vista 中引入的所有更改 here .你真的应该非常仔细地阅读那篇文章。

您正在寻找的 API 是 ShutdownBlockReasonCreate , ShutdownBlockReasonDestroyShutdownBlockReasonQuery .请记住,这些 API 仅在 Vista/2008 服务器上可用。您必须在 2000/XP 上实现回退行为。

如果您需要阻止关机,您可以调用 ShutdownBlockReasonCreate 将句柄传递给主窗口,并将原因作为字符串传递。此字符串是关闭阻止对话框中显示的内容,即屏幕截图中的“1 virtual machine is in use”。

如果阻止关机的操作完成,则调用 ShutdownBlockReasonDestroy

请注意,您仍然必须实现 WM_QUERYENDSESSION使所有部分组合在一起。这是真正阻止关机的部分。

在 XP 上,您还应该回复 WM_ENDSESSION如果您的应用程序阻止关闭,则显示一条说明原因的消息是礼貌的。如果您不这样做,那么用户就只能摸不着头脑,为什么计算机会忽略关机指令。

关于c++ - 使用自定义消息防止 Windows 关机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7538006/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com