我需要检测系统电源状态模式。确切地说,我需要一个事件,当Windows 7从睡眠中醒来时会激活。我已经在使用:
SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;
但是这个事件的问题在于它被提升了四次:可能是在计算机进入睡眠模式和计算机唤醒之后。我想要一个只在计算机唤醒时引发的事件。这有什么事吗?
答案 0 :(得分:37)
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
答案 1 :(得分:7)
您需要检查传递给该事件的PowerModeChangedEventArgs
的Mode
属性。
来自MSDN:
Resume
操作系统即将从暂停状态恢复。
StatusChange
操作系统引发了电源模式状态通知事件。这可能表示弱或充电 电池,交流电源和电池之间的过渡,或其他变化 在系统电源的状态。
Suspend
操作系统即将暂停。
答案 2 :(得分:0)
SystemEvents.PowerModeChanged += OnPowerModeChange;
private void OnPoweModerChange(object s, PowerModeChangedEventArgs e)
{
if(e.Mode==PowerModes.Suspend)
{
//Apply your operation
}
}
使用此代码完成工作