Событие для обнаружения пробуждения системы из сна в C #

c# windows events

21693 просмотра

3 ответа

553 Репутация автора

Мне нужно определить режим состояния питания системы. Чтобы быть точным, мне нужно событие, которое запускается, когда Windows 7 просыпается от сна. Я уже использую:

SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

Но проблема с этим событием заключается в том, что оно вызывается четыре раза: возможно, когда компьютер переходит в спящий режим и после его включения. Я хочу, чтобы событие, которое возникает только при пробуждении компьютера. Есть ли какое-нибудь событие для этого?

Автор: Pankaj Источник Размещён: 13.08.2013 10:03

Ответы (3)


7 плюса

33377 Репутация автора

Вам необходимо проверить Modeсвойство того, PowerModeChangedEventArgsчто передается на мероприятие.

Из MSDN:

  • Resume Операционная система собирается выйти из приостановленного состояния.

  • StatusChange Событие уведомления о состоянии режима питания было вызвано операционной системой. Это может указывать на разряженную или заряжающуюся батарею, переход между питанием от сети переменного тока и батареей или другое изменение состояния источника питания системы.

  • Suspend Операционная система будет приостановлена.

Автор: Moo-Juice Размещён: 13.08.2013 10:07

38 плюса

4868 Репутация автора

Решение
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

Автор: Marcus Размещён: 13.08.2013 10:14

0 плюса

1384 Репутация автора

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

Используйте этот код, чтобы сделать свою работу

Автор: habib Размещён: 09.09.2016 04:51
Вопросы из категории :
32x32