在C#中检测系统醒来的事件

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

SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged; 

但是这个事件的问题在于它被升起了四次:可能是当电脑进入睡眠模式并且电脑被唤醒后。 我只想要一个电脑唤醒的事件。 有没有这个事件?

Solutions Collecting From Web of "在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操作系统即将被暂停。

 SystemEvents.PowerModeChanged += OnPowerModeChange; private void OnPoweModerChange(object s, PowerModeChangedEventArgs e) { if(e.Mode==PowerModes.Suspend) { //Apply your operation } } 

使用此代码来完成您的工作