Topic: определение спящего режима

Привет всем!
Можно как-то отловить переход в спящий режим, чтобы не накручивать обращения приложения к mysql по таймеру?
Слышал про waitable timer, но у нас наверное такого нет...

Re: определение спящего режима

Вопрос не ясен. Нужно "отловить" и "отменить"..?

Re: определение спящего режима

vovka3003 wrote:

Вопрос не ясен. Нужно "отловить" и "отменить"..?

Отменить мне надо мои запросы к базе (которые возникают по таймеру), если система послала в вещании, что, например, крышка ноута закрыта, система переходит в режим гибернации или сна

Re: определение спящего режима

konstantin wrote:
vovka3003 wrote:

Вопрос не ясен. Нужно "отловить" и "отменить"..?

Отменить мне надо мои запросы к базе (которые возникают по таймеру), если система послала в вещании, что, например, крышка ноута закрыта, система переходит в режим гибернации или сна


Если крышку закрыли на рабочей станции, то запросы отправляться не будут - все уснут, включая приложением MVD.


Если крышку закрыли на сервере, то.... база будет недоступна, и при очередном обращении к ней получите ошибку, которую можно обработать, используя function OnSQLException(Sender: TObject; Msg: string; SQL: string): boolean;

P.S.Никогда не слышал о том, чтобы ОС уведомляла кого-то о закрытии крышки )))).

Визуальное программирование: блог и телеграм-канал.

Re: определение спящего режима

КОМПЬЮТЕР ПЕРЕВЕДЕН

Windows запускает событие WMI при переключении Powerstatus. Может также быть прочитан доступом ACPI / AHCI

Re: определение спящего режима

lostdb wrote:

КОМПЬЮТЕР ПЕРЕВЕДЕН

Windows запускает событие WMI при переключении Powerstatus. Может также быть прочитан доступом ACPI / AHCI

Прочитан, конечно, может быть (По таймеру? smile ). Но речь шла о рассылке уведомлений.


Подождем, пока ТС уточнит, какой из двух вариантов ему нужен...

Визуальное программирование: блог и телеграм-канал.

Re: определение спящего режима

Вот как раз то, как можно прочитать событие WMI из WM_POWERBROADCAST и интересует. Удивительно, приложение засыпает, но таймеры похоже - нет.

Re: определение спящего режима

konstantin wrote:

Вот как раз то, как можно прочитать событие WMI из WM_POWERBROADCAST и интересует.

WM_POWERBROADCAST - это фильтр сообщений питания для ловушки SetWindowHookEx. В собираемый проект никак не засунуть, только если написать отдельную DLL.

WMI - это высокоуровневая обертка (не имеет ничео общего с фильром). Чтобы поймать в ней сообщение питания - надо закрутить вечный цикл и занять половину процессорного времени. Оно вам надо?

konstantin wrote:

Удивительно, приложение засыпает, но таймеры похоже - нет.

Как вы это определили?