我的应用程序可以设置唤醒计时器并将计算机发送到待机状态。
hTimer = CreateWaitableTimer(NULL, true, NULL);
SetWaitableTimer(hTimer, &liDueTime, 0, NULL, NULL, true);
SetSuspendState(false, true, false);
唤醒时,计时器被取消。
if (message->message == WM_POWERBROADCAST
&& message->wParam == PBT_APMRESUMEAUTOMATIC)
CancelWaitableTimer(hTimer);
这似乎有效。计算机进入待机状态并在正确的时间唤醒。如果计时器调整到第二天,它也会唤醒,但随后会发生以下情况:
将计算机再次发送到待机状态(按钮或代码无关紧要)后,它会进入待机状态并立即再次唤醒。
有人知道为什么它会再次唤醒吗?
MinGw,gcc,WinXP Sp3