首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中检测系统从睡眠状态唤醒的事件

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

Stack Overflow用户
提问于 2013-08-13 18:03:47
回答 2查看 28.9K关注 0票数 36

我需要检测系统电源状态模式。准确地说,我需要一个在windows7从睡眠中唤醒时触发的事件。我已经在使用:

代码语言:javascript
复制
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-13 18:14:43

代码语言:javascript
复制
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

票数 58
EN

Stack Overflow用户

发布于 2013-08-13 18:07:23

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

来自MSDN:

  • Resume操作系统即将从挂起的state.
  • StatusChange中恢复电源模式状态通知事件已由操作系统引发。这可能表示电池电量不足或正在充电、交流电源和电池之间的转换,或者操作系统即将挂起时系统电源状态的另一次更改。
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18206183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档