Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Delphi Новый топик    Ответить
 Как отловить гибернацию (глубокий сон) WM_POWERBROADCAST в службе?  [new]
m52
Member

Откуда:
Сообщений: 721
Здравствуйте,

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

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

Заранее благодарен.
5 июл 19, 11:31    [21921458]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить гибернацию (глубокий сон) WM_POWERBROADCAST в службе?  [new]
DmSer
Member

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


Какая от этого польза?
5 июл 19, 11:49    [21921476]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить гибернацию (глубокий сон) WM_POWERBROADCAST в службе?  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48425

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

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

Posted via ActualForum NNTP Server 1.5

5 июл 19, 12:01    [21921490]     Ответить | Цитировать Сообщить модератору
 Re: Как отловить гибернацию (глубокий сон) WM_POWERBROADCAST в службе?  [new]
m52
Member

Откуда:
Сообщений: 721
Спасибо за совет, однако у себя в проекте службы я обнаружил форму (которую когда-то давно создал и забыл), которая была создана для отлова других соообщений. Добавил прием WM_POWERBROADCAST в этой же форме. Сама форма не отображается на экране, т.к. это служба, а вот сообщения ловит отлично. Работает как часы.
9 июл 19, 13:36    [21923423]     Ответить | Цитировать Сообщить модератору
Все форумы / Delphi Ответить