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

C++Builder Discussion :

Interception de la fermeture de session [FAQ]


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Interception de la fermeture de session
    Bonjour

    Je suis en train de réaliser un programme résidant (TSR quoi), et j'aimerais que lorsque l'utilisateur ferme sa session mon prog exécute une autre appli ou un bout de code afin de mettre à jour ma base de donnée.

    Sinon je recherche aussi un moyen d'interdire la fermeture de mon application via le gestionnaire des tâches. En effet en tant que processus Windows XP arrive à me killer sans problème mon appli.

    Merci

  2. #2
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    Pour détecter la fermeture d'une session windows moi j'intercepte le message WM_QUERYENDSESSION dans la fonction WndProc.
    Ceci pourrait ressembler à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::WndProc(Messages::TMessage &Message)
    {
        if (Message.Msg == WM_QUERYENDSESSION)
        {
          //Les actions
        }
        else{}
     
        TForm::WndProc(Message);
    }
    J'espère que ca va t'aider
    Bon courage
    "Don't think you are, know you are..." (Morpheus)

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2003
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci

    Je vais tester ca tout de suite

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Neo41
    Bonjour,

    Pour détecter la fermeture d'une session windows moi j'intercepte le message WM_QUERYENDSESSION dans la fonction WndProc.
    Ceci pourrait ressembler à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::WndProc(Messages::TMessage &Message)
    {
        if (Message.Msg == WM_QUERYENDSESSION)
        {
          //Les actions
        }
        else{}
     
        TForm::WndProc(Message);
    }
    J'espère que ca va t'aider
    Bon courage
    Comment declarer cette fonction et s'en servir?
    Merci

  5. #5
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Bonjour,

    Citation Envoyé par jeannot27
    Comment declarer cette fonction et s'en servir?
    Merci
    Pour la déclaration c'est comme n'importe quelle fonction, donc le prototype dans le .h (ou .hpp) et l'implémentation dans le .cpp !! Donc, dans le .cpp tu mets le code ci-dessus, et dans le .h tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    void __fastcall WndProc(Messages::TMessage &Message);
    Et voilà ! C'est quand même une des bases de la programmation savoir déclarer une fonction...
    "Don't think you are, know you are..." (Morpheus)

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 115
    Points : 48
    Points
    48
    Par défaut
    Citation Envoyé par Neo41
    Bonjour,
    Et voilà ! C'est quand même une des bases de la programmation savoir déclarer une fonction...
    Oui on est d'accord mais je debute avec BCB et apparement la declaration de fonction est particuliere a BCB d'apres l'aide..donc je comprenais pas......
    Merci

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Elle n'est pas vraiment particulière à BCB et même d'après l'entête tu sais direcement quoi mettre dans le .h.

    A la limite ce que tu ne pouvais pas savoir c'est qu'il "fallait" le mettre dans la partie protected de ta classe...

    Mais comme toujours l'aide de C++ Builder est très bien écrite, et surtout illustrée d'exemple. Etant donné que tu est débutant : habitue toi à l'aide elle est très très utile.
    Neilos

  8. #8
    Membre averti
    Avatar de Neo41
    Inscrit en
    Janvier 2003
    Messages
    241
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 241
    Points : 403
    Points
    403
    Par défaut
    Citation Envoyé par Neilos
    A la limite ce que tu ne pouvais pas savoir c'est qu'il "fallait" le mettre dans la partie protected de ta classe...
    Non je ne suis pas d'accord parce que moi je l'utilise toujours dans la partie private de ma TForm. Dans l'aide non plus ils ne mentionnent pas l'obligation de la déclarer dans la section protected.

    Surchargez WndProc pour modifier le gestionnaire de message Windows du contrôle. La propriété WindowProc est initialisée pour pointer sur la méthode WndProc.

    La méthode WndProc de TWinControl surcharge la méthode de sa classe parent afin de définir des réponses aux messages de focalisation, souris et clavier et envoie tous les autres messages à la méthode WndProc de sa classe parent.

    Si vous surchargez WndProc pour proposer des réponses spécifiques aux messages, terminez toujours en appelant la méthode WndProc de sa classe parent pour distribuer les autres messages.
    "Don't think you are, know you are..." (Morpheus)

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 163
    Points : 1 148
    Points
    1 148
    Par défaut
    Il n'y a pas d'obligation....juste si tu ne sais pas où le mettre tu regardes l'exemple et eux le mettent dans protected
    Neilos

Discussions similaires

  1. intercepter la fermeture de session
    Par abou_alkassim dans le forum ASP.NET
    Réponses: 14
    Dernier message: 10/09/2009, 10h48
  2. [Session]Problème de fermeture de session
    Par july dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 16/06/2005, 12h25
  3. Fermeture de session WndProc()
    Par jamesb dans le forum C++Builder
    Réponses: 15
    Dernier message: 10/02/2005, 17h35
  4. [JSP] session et fermeture de session
    Par monoeilouais dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/04/2004, 16h02
  5. Probleme de redirection apres fermeture de session
    Par soufienne dans le forum ASP
    Réponses: 3
    Dernier message: 08/04/2004, 10h52

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