Witam. Dokładnie chodzi mi o to aby program rozpoznawał czynności wykonywane przez użytkownika związane z zamykaniem, restartem, hibernacją itp.
Mam taką procedure:
private
procedure WMQueryEndSession(var Msg : TWMQueryEndSession); message WM_QUERYENDSESSION;
//...
procedure TOrganizer1.WMQueryEndSession(var Msg : TWMQueryEndSession);
var
H : Thandle;
begin
H := FindWindow(nil, PChar(Organizer1.Caption));
if Msg.Msg = WM_QUERYENDSESSION then
begin
PostMessage(H, WM_QUIT, 0, 0); // zamknięcie programu
ExitWindows2; // wyłączenie systemu lub jakaś inna procedura
end;
end;