Поиск времени перехода компьютера в режим гибернации - PullRequest
0 голосов
/ 02 ноября 2018

Есть ли в любом случае время, когда компьютер перейдет в режим гибернации с C #?

У меня есть способ вызвать Messagebox, когда начинается спящий режим, используя SystemEvents.SessionSwitch и PowermodeChange. Messagebox работает только тогда, когда компьютер фактически переходит в режим гибернации.

Но я бы хотел узнать время до его перехода в режим гибернации, чтобы я мог выполнить что-то еще, прежде чем он перейдет в режим гибернации.

protected override void WndProc(ref Message m) {
    switch (m.Msg) {
        case WM_POWERBROADCAST:
            switch (m.WParam.ToInt32()) {
                //value passed when system is going on standby / suspended
                case PBT_APMQUERYSUSPEND:
                    MessageBox.Show("test);
                            break;
                //value passed when system is suspended
                case (PBT_APMSUSPEND): break;
                //value passed when system is resumed automatically
                case (PBT_APMRESUMEAUTOMATIC):
                    break;
                //value passed when system is resumed after suspension.
                case PBT_APMRESUMESUSPEND:
                    break;
            }
            break;
        default:
            break;
    }
    base.WndProc(ref m);
}

Я знаю, что PBT_APMQUERYSUSPEND что-то получает, когда система отключается, но сообщение не появляется

...