Как я могу проверить, находится ли система в режиме ожидания? - PullRequest
1 голос
/ 22 декабря 2008

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

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

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

Денис

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

Ответы [ 3 ]

4 голосов
/ 22 декабря 2008

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

int is_in_standby() {
  return 0;
}

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

1 голос
/ 23 декабря 2008

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

0 голосов
/ 24 декабря 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...