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

Framework .NET Discussion :

Par où passe une application qui quitte ?


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Par défaut Par où passe une application qui quitte ?
    Bonjour

    Je viens de réaliser une petite application WindowsForm en C#/.Net 4.0 qui se place dans le SysTray.
    J'ai besoin d'exécuter une commande quand mon application se ferme.
    Pas de problème lorsque l'utilisateur utilise un menu contextuel de l'icone de notification ou bien via la croix rouge en haut à droite de la Form associée.

    Par contre, si l'utilisateur ferme sa session, impossible de trouver par où passe le code ou quel handler il faut prendre. Résultat mon code de fermeture ne s'exécute pas.

    Même dans le Program.Main ca ne marche pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
            [STAThread]
            static void Main()
            {
                shouldExecuteWhenExiting = true;
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new frmMain());
     
                if (shouldExecuteWhenExiting)
                {
                    Execute();
                    shouldExecuteWhenExiting = false;
                }
            }

    Est-il possible d'intercepter la fermeture de l'application dans ce cas là ?

    Merci d'avance

    Jean-Michel.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par barbudor Voir le message
    Est-il possible d'intercepter la fermeture de l'application dans ce cas là ?
    Oui c'est possible en gérant l'évènement Application.ApplicationExit

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Par défaut
    Merci.
    Ca semble simple par le nom.
    J'aurais du trouver tout seul.

    (Ps: les notifs de réponses ne semblent pas marcher pour moi)

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par barbudor Voir le message
    (Ps: les notifs de réponses ne semblent pas marcher pour moi)
    ça veut dire quoi ?

  5. #5
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Aulieu de poser une question il aurait du écouter son esprit puisque le nom de l'event est très évocateur.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  6. #6
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par WOLO Laurent Voir le message
    Aulieu de poser une question il aurait du écouter son esprit puisque le nom de l'event est très évocateur.
    Ah oui! je vois Le français est parfois difficile ! j'avais pas du tout compris !

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 11
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    ça veut dire quoi ?
    Ça veut dire que sur ce forum je ne reçoit pas d’émail de notification de réponse ... mais j'ai trouvé pourquoi - corrigé maintenant.


    Sinon, la réponse ci-dessus ne marche pas.
    Comme tous mes précédents essais, cela marche quand on quitte normalement l'application mais le handler ApplicationExit n'est toujours pas appelé si l'utilisateur ferme sa session ou Windows.

    Dans ce cas, le programme se ferme mais je ne sais pas par où...


    Merci d'avance

    A+

    Jean-Michel "barbudor"

  8. #8
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonjour, deux solutions dans ce cas :
    * Avec Windows Forms : Form.Closing
    * Sinon : Microsoft.Win32.SystemEvents.SessionsEnding

    Il est même possible d'interrompre le shutdown de Windows via les arguments de Form.Closing.

    Sinon... Ton code original ne marchait pas ? Peut-être parce que le thread était terminé par une exception (ThreadAbortException), un finally résoudrait le problème.

Discussions similaires

  1. Création d'une application qui s'ouvre par défaut
    Par vlksoft dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/03/2010, 10h42
  2. Réponses: 5
    Dernier message: 02/10/2006, 17h18
  3. Comment lancer une application qui a été développée sous Unix avec le navigateur IE
    Par diamonds dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/09/2006, 14h43
  4. Réponses: 2
    Dernier message: 08/06/2006, 14h38
  5. [VB.NET] Programmer une Application qui tourne sur un PDA?
    Par Bils dans le forum Windows Forms
    Réponses: 1
    Dernier message: 27/01/2006, 04h23

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