Определение завершения работы Windows

Самым простым решением является создание обработчика события главной формы OnCloseQuery. Данное событие возникает как результат сообщения WM_QUERYENDSESSION, которое посылается всем работающим приложениям Windows в момент инициализации процесса окончания работы Windows. Логическая переменная CanClose, передаваемая обработчику как var-параметр, может позволить программе (и Windows) завершить свою работу, если имеет значение True, значение же False не позволит программе завершить свою работу.

Следующий код демонстрирует как можно воспользоваться данным событием.

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin

{Спрашиваем пользователя, если инициировано завершение работы.}
if MessageDlg('Вы уверены?', mtConfirmation, mbYesNoCancel, 0) = mrYes
then CanClose := true    {Разрешаем завершение работы.}
else CanClose := false;  {Не разрешаем завершение работы.}
end;

 
« Предыдущая статья   Следующая статья »