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# Discussion :

[AutoKill] Fermeture automatique d'une application après un temps d'inactivité


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut [AutoKill] Fermeture automatique d'une application après un temps d'inactivité
    Bonjour à tous !

    J’ai une application qui se loge dans le systray (elle affiche des messages de temps en temps, l’utilisateur peut aussi aller dans le menu pour voir les derniers messages & co), mais cette application ne fait rien la plupart du temps (elle est juste lancée par d’autres logiciels). En bref, c'est une sorte d'Abobe updater (affiche des message automatiquement après récup sur serveur)


    On critique sa taille gourmande en mémoire (30 Mo…), difficile de faire mieux en .Net !


    Mon idée c’est de proposer une fermeture automatique après inactivité, comment dois je procéder ?

    Y a-t-il un truc magique qui fait ça ?
    Où faut que je me paluche un timer global à l’application que je relance aux endroits propices du code (affichage du message, le mec clic sur l’ouverture des menus…) ?

    Merci d’avance pour vos avis

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Je pense que tous les event passent par WndProc.
    Ainsi, tu pourrais faire comme ceci dans la Main Form:
    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
    16
     using System.Diagnostics;
     
    private DateTime LastEventDateTime=DateTime.Now() ;
    private double Inactivite_maxi_en_minutes = ... ; // constante à définir 
     
    protected override void WndProc(ref Message m) 
    {
       base.WndProc(ref m);
       LastEventDateTime=DateTime.Now() ;
    }
     
    static void timer1_Tick(object sender, EventArgs e)
    {
       System.TimeSpan diff = DateTime.Now().Substract(LastEventDateTime);
       if (diff.TotalMinutes>Inactivite_maxi_en_minutes) MyCloseAppliFunction() ;
    }
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Points : 552
    Points
    552
    Par défaut
    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
    16
    17
    18
    19
    20
    21
            public Form1()
            {
                InitializeComponent();
                timer1.Interval = 5000;
                timer1.Start();
            }
     
            private DateTime LastEventDateTime = DateTime.Now;
            private int Inactivite_maxi_en_second = 10; // constante à définir 
     
            protected override void WndProc(ref Message m)
            {
                base.WndProc(ref m);
                LastEventDateTime = DateTime.Now;
            }
     
            private void timer1_Tick_1(object sender, EventArgs e)
            {
                System.TimeSpan diff = DateTime.Now.Subtract(LastEventDateTime);
                if (diff.TotalSeconds > Inactivite_maxi_en_second) Application.Exit();
            }
    Graffito, A première vu ca m'a l'air de tenir la route, merci chaleureusement !

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    ca m'a l'air de tenir la route
    Remplace toutefois diff.Seconds par diff.TotalSeconds
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/01/2012, 20h38
  2. Réponses: 5
    Dernier message: 04/07/2010, 06h13
  3. Fermeture automatique d'une Form
    Par byboleymar dans le forum Langage
    Réponses: 14
    Dernier message: 08/09/2006, 08h57
  4. Réponses: 5
    Dernier message: 11/05/2006, 21h39
  5. fermeture d'une application après un temp d'inactivité?
    Par sitdown dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 24/08/2005, 15h44

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