Hola, este es el codigo q yo utilizo cuando van a apagar o van a reiniciar
Código Delphi
[-]
procedure WMQueryEndSession (var Msg: TWMQueryEndSession);
message WM_QueryEndSession;
procedure TFprincipal.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
Msg.Result := 0;
try
if (conectado = true) and (Timerconectar.Enabled = false) then
guarda_valores;
except
end;
Msg.Result := 1;
end;
Un saludo.