IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

D5 - WM_QUERYENDSESSION


Sujet :

Langage Delphi

  1. #1
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut D5 - WM_QUERYENDSESSION
    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?

  2. #2
    Membre émérite
    Avatar de MD Software
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    613
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 613
    Par défaut
    Pourquoi tu modifies le result ?
    MD Software
    ---------------------------
    F.A.Q. Delphi - Cours Delphi - Composants Delphi - Sources Delphi

  3. #3
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    On m'a "dit" sur ce forum qu'il fallait renvoyé 1 pour signaler à l'OS que l'on a bien reçu et traité le message. Le fait de changer le message.result en 0 ne modifie d'ailleurs pas le comportement. Je n'ai pas essayer de mettre en commentaire cette ligne, je vais essayer de suite...

  4. #4
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Voilà, je viens d'essayer et ça ne change rien du tout...

  5. #5
    Membre confirmé

    Inscrit en
    Janvier 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 48
    Par défaut
    Le Application. terminate ne serait-il pas en cause ?
    J'utilise personellement une méthode douce pour la fermeture de mon programme. En autorisant tout simplement la fermeture normale.


    http://<br /> http://www.developpez...dsession<br />

  6. #6
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    J'ai déjà essayé sans le Application.Terminate et cela ne change rien.

    Je vais jeter un oeil du côté de ton lien

  7. #7
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Par défaut
    salut lolo
    je ne comprend pas tres bien ton probleme
    1-application exécutant certaines fonctionnalités et se logeant dans le system tray
    2-application devant se fermer lors de la fermeture de session ou l'extinction de la machine

    pourquoi ne pas tout simplement ignorer ce message et laisser le cours normal de l'application ?

  8. #8
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    Si je ne fais rien et ne gère pas ce fameux message et bien mon exécutable ne s'arrête pas et donc pas de shutdown. En gérant le message, je permets à mon exécutable de s'arrêter mais le shutdown reste malgré tout interrompu.

    Je ne sais pas si c'est mon timer (TTimer) ou TCiaTrayIcon qui pose problème. je dois encore faire un test en remplaçant par CoolTrayIcon mais je suis un peu à la bourre avec le reste de mon boulot donc j'essaye d'avoir d'autres idées auprès de la communauté

  9. #9
    Membre confirmé
    Profil pro
    Chef de projet
    Inscrit en
    Février 2003
    Messages
    86
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef de projet

    Informations forums :
    Inscription : Février 2003
    Messages : 86
    Par défaut
    J'ai finalement trouvé. le problème venait des composants NMFTP et NMDayTime de l'onglet Fastnet inclus dans Delphi 5.

    J'ai remplacé les composants par leur équivalent Indy et en ayant peu d'adaptation à faire à mon code et à présetn cela marche nickel, plus de bloquage au shutdown de la machine.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation de WM_QUERYENDSESSION
    Par Electroniktor dans le forum Windows
    Réponses: 5
    Dernier message: 15/07/2009, 13h30
  2. comment utiliser le message WM_QUERYENDSESSION avec delphi6
    Par evarisnea dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 31/08/2005, 14h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo