在C#中检测系统从睡眠中唤醒的事件

本文关键字:唤醒 事件 睡眠中 检测系统 | 更新日期: 2023-09-27 18:27:24

我需要检测系统电源状态模式。确切地说,我需要一个在windows 7从睡眠中醒来时启动的事件。我已经在使用:

SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

但这个事件的问题是,它会被提起四次:可能是在计算机进入睡眠模式时和计算机醒来后。我想要一个只在电脑唤醒时引发的事件。这有什么活动吗?

在C#中检测系统从睡眠中唤醒的事件

SystemEvents.PowerModeChanged += OnPowerChange;
private void OnPowerChange(object s, PowerModeChangedEventArgs e) 
{
    switch ( e.Mode ) 
    {
        case PowerModes.Resume: 
        break;
        case PowerModes.Suspend:
        break;
    }
}

您可能应该阅读以下内容:http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.powermodechanged.aspx

您需要检查传递给事件的PowerModeChangedEventArgsMode属性。

来自MSDN:

  • Resume操作系统即将从挂起状态恢复。

  • StatusChange操作系统已引发电源模式状态通知事件。这可能表示电量不足或充电电池,交流电源和电池之间的转换,或其他变化处于系统电源的状态。

  • Suspend操作系统即将挂起。