在 Windows XP 上,我可以在按下笔记本电脑的电源按钮时检测到事件。获得 APMQUERYSUSPEND 事件的条件是 [控制面板-> 电源选项-> 系统设置-> 当我按下电源按钮时-> 睡眠] 的选项必须更改为“睡眠”。
MainFrm::OnPowerBroadcast(WPARAM wParam, LPARAM lParam)
{
switch (wParam)
{
case PBT_APMQUERYSUSPEND:
// Ask question whether to power off or not
// If not, return BROADCAST_QUERY_DENY
return BROADCAST_QUERY_DENY;
}
但是从 Windows 7 开始,我没有任何线索可以检测到该事件。基于 Windows 7,删除了 APMQUERYSUSPEND 事件。即使我尝试了 SetThreadExecutionState API 来阻止关闭,它也不起作用。 http://msdn.microsoft.com/ko-kr/library/windows/desktop/aa372716(v=vs.85).aspx
您知道按下电源按钮时捕捉事件的任何想法吗?
谢谢。