J'ai devéloppé une application se logeant dans les icônes en bas à droite. J'ai utilisé pour cela TCiaTray. L'appli utilise aussi un timer pour lancer une opération chaque jour durant la pause de midi.

Tout marche bien sauf un point: le shutdown. J'ai posé la question sur ce forum en on m'a parlé du message WM_QUERYENDSESSION

J'ai donc placé le code suivant

dans la déclaration de la form:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
  private
    { Private declarations }
    procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
L'implémentation:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
  Form2.Timer1.Enabled := False; 
  Form2.Timer1.Destroy;
  Message.Result := 1;       
  Application.Terminate;
end;
L'appli se termine à présent correctement lors d'un shutdown ou une fin de session mais le shutdown est interrompu. Ne trouvant pas de solution j'envisage que mon appli relance un nouvel ordre de shutdwon ou de fin de session. Mais pour ce faire j'ai besoin de savoir comment détecter une fin de session ou un shutdown en recevant WM_QUERYENDSESSION

Ce serait c... de lancer un shutdwon si l'utilisateur fait une fin de session

Quelqu'un sait m'éclairer?