Как отловить гибернацию (глубокий сон) WM_POWERBROADCAST в службе?

m52
Дата: 05.07.2019 11:31:49
Здравствуйте,

В обычном приложении при входе в Спящий режим я в главной форме принимаю сообщение от системы WM_POWERBROADCAST и в нем узнаю, что ПК переходит в Спящий режим.

Но в службе нет окон. Как в службе узнать, что ПК засыпает (переходит в Спящий режим) ?

Заранее благодарен.
DmSer
Дата: 05.07.2019 11:49:53
автор
Как в службе узнать, что ПК засыпает (переходит в Спящий режим) ?


Какая от этого польза?
Dimitry Sibiryakov
Дата: 05.07.2019 12:01:19

m52
Как в службе узнать, что ПК засыпает (переходит в Спящий режим) ?

1) Использовать RegisterServiceCtrlHandlerEx() вместо RegisterServiceCtrlHandler().
2) В хэндлере обрабатывать SERVICE_CONTROL_POWEREVENT.

Posted via ActualForum NNTP Server 1.5

m52
Дата: 09.07.2019 13:36:42
Спасибо за совет, однако у себя в проекте службы я обнаружил форму (которую когда-то давно создал и забыл), которая была создана для отлова других соообщений. Добавил прием WM_POWERBROADCAST в этой же форме. Сама форма не отображается на экране, т.к. это служба, а вот сообщения ловит отлично. Работает как часы.