Tag: sleep mode

无法捕捉睡眠/暂停消息(winXP)

我的应用程序需要阻止睡眠/hibernate模式。 我有代码,但成功捕获WM_POWERBROADCAST消息后, PBT_APMQUERYSUSPEND和PBT_APMQUERYSTANDBY都没有被成功捕获。 有趣的是,我的应用程序正在捕获PBT_APMRESUMECRITICAL和PBT_APMRESUMEAUTOMATIC消息。 底线问题:为什么我的应用程序无法捕获备用/暂停消息,但成功捕获恢复消息是否有任何原因? 这个Q&A [stackoverflow.com]有帮助,顺便说一句,但是这些消息似乎没有进入我的应用程序。 我的代码(为了简洁起见删除了事件日志代码): protected override void WndProc(ref System.Windows.Forms.Message m) { // Power status event triggered if (m.Msg == (int)NativeMethods.WindowMessage.WM_POWERBROADCAST) { // Machine is trying to enter suspended state if (m.WParam.ToInt32() == (int)NativeMethods.WindowMessage.PBT_APMQUERYSUSPEND || m.WParam.ToInt32() == (int)NativeMethods.WindowMessage.PBT_APMQUERYSTANDBY) { // Have perms to deny this message? if((m.LParam.ToInt32() & 0x1) != 0) { […]