Подтвердить что ты не робот

Событие, чтобы обнаружить, что система просыпается от сна в С#

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

SystemEvents.PowerModeChanged += SystemEvents_PowerModeChanged;

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

4b9b3361

Ответ 2

Вам нужно проверить свойство Mode PowerModeChangedEventArgs, которое передается этому событию.

Из MSDN:

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

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

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

Ответ 3

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

Используйте этот код для выполнения своей работы