Как я могу проверить, находится ли система в режиме ожидания?

Я хотел бы проверить, находится ли система в режиме ожидания, есть ли Win32 API для этого? Я не уверен, что это так же, как режим сна.

В моем приложении выполняется некоторый код, который вызывает зависание при выходе из режима ожидания (он выполняется в режиме ожидания), поэтому я хотел бы избежать запуска этого кода, когда компьютер находится в режиме ожидания / ожидания.

Заранее спасибо!

Деннис

редактировать: возможно, это невозможно, потому что программа не должна работать, как указано в ответе ниже, поэтому я буду считать это ответом:)

3 ответа

Решение

Когда система находится в режиме ожидания, никакая программа не будет запущена, поэтому будет нормально следующее:

int is_in_standby() {
  return 0;
}

Или я что-то упустил?

Насколько я знаю, ни один код не работает в режиме ожидания Windows. Кроме оперативной памяти все выключено. Ошибка в вашем коде может быть вызвана сообщениями окна после того, как компьютер снова проснется.

Если ваша программа работает, вы не в режиме ожидания.

Я думаю, что вы хотите сделать, это обработать сообщения WM_POWERBROADCAST. Они сообщат вам, когда система меняет состояние питания, и до Vista вы можете быть злыми и наложить вето на отключение питания, если хотите.

Другие вопросы по тегам