Отслеживание выхода из спящего режима - Delphi
procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST;
Titmouse, процедура выполняется при получении программой сообщения WM_POWERBROADCAST
Можно примерно так:
type TForm1 = class(TForm) private procedure WMPowerBroadcast(var Msg: TMessage); message WM_POWERBROADCAST; public { Public declarations } end; const PBT_APMSUSPEND = 4; PBT_APMRESUMESUSPEND = 7; PBT_APMRESUMEAUTOMATIC = 18; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.WMPowerBroadcast(var Msg: TMessage); begin case Msg.wParam of PBT_APMSUSPEND: ; // переход в спящий режим PBT_APMRESUMESUSPEND: ; // выход из спящего режима, инициированный пользователем (например, нажата клавиша) PBT_APMRESUMEAUTOMATIC: ; // выход из спящего режима end; end;
Titmouse, процедура выполняется при получении программой сообщения WM_POWERBROADCAST, то есть отдельно самому её нигде прописывать (вызывать ) не нужно.
Что касаемо самой процедуры, то в качестве параметра она получает одно из нескольких значений...
PBT_APMSUSPEND: ; * * * * // переход в спящий режим * * PBT_APMRESUMESUSPEND: ; * // выход из спящего режима, инициированный пользователем (например, нажата клавиша) * * PBT_APMRESUMEAUTOMATIC: ; // выход из спящего режима
выбираете нужное вам, например PBT_APMRESUMESUSPEND и пишите, что должно произойти, например
procedure TForm1.WMPowerBroadcast(var Msg: TMessage); begin case Msg.wParam of ... PBT_APMRESUMESUSPEND: begin ShowMessage('Вышли из спящего режима'); прочие действия... end; ; ... end; end;
Это полностью рабочий код.
Надо только добавить требуемую реакцию на соответствующие варианты сообщения.
Процедура "вызывается" операционной системой.
< Предыдущая | Следующая > |
---|