Как отловить отключение windows в приложении без форм (а не консольных)? - PullRequest
0 голосов
/ 19 апреля 2019

Так что у меня есть приложение без форм с бесконечным циклом. В цикле я проверяю что-то и выполняю работу приложения. Поэтому мне нужно выключить свое приложение, когда пользователь выключит свой компьютер.

Нашел информацию о WM_QUERYENDSESSION и WM_ENDSESSION, но не знаю, как их поймать. У кого-нибудь есть примеры, как установить ловушку на это и поймать это сообщение?

Попытался установить крюк, но я думаю, что у меня недостаточно опыта.

Я использовал функцию SetWindowsHookEx, чтобы установить хук. Есть ли другой способ поймать сообщения о выключении Windows?

Вот прототип приложения:

program Hoook;

{$APPTYPE GUI}
{$R *.res}

uses
  System.SysUtils,
  Messages,
  WinTypes,
  Windows;

var a:boolean;

begin
//Here we must set hook
a:=true;
while a=true do
   Sleep(1000);
   //Check something
   //Do something
end.
...