none
Locker une application si elle n'est pas utilisée

    Discussion générale

  • Bonjour,

    Pour rentrer dans mon application, il faut se logger via une fenêtre avec un login et mot de passes. Je voudrais que si l'utilisateur n'a rien fait depuis x minutes, la fenêtre de login réapparaît et l'utilisateur doit à nouveau s'identifier.

    Je suppose qu'il faut utiliser un Timer et éventuellement un thread, mais comment identifier le fait qu'aucune action n'a été faite pendant une certaine durée?

    Auriez-vous des exemple, je ne vois pas trop comment m'y prendre.

    Merci

    vendredi 16 décembre 2016 19:34

Toutes les réponses

  • Bonsoir,

    Vous pouvez jouer sur l'évènement  PointerMoved de la page vu que je ne sais pas de quelle techno vous parlez.

    Le principe est de démarrer le timer dans l'évènement Loaded de la page et à chaque PointerMoved de la page remettre le Timer à 0.

    J'ai déjà essayé cette manipulation et ça a fonctionné y a longtemps :).

    J'espère que j'ai bien répondu à votre question.

    Si c'est le cas, n'hésitez pas à mettre ma réponse en réponse à votre post


    Please remember to close your threads by marking helpful posts as answer and then start a new thread if you have a new question. Please don't ask several questions in the same thread. SVP utiliser le Marquer comme reponse; sur les reponses qui vous aide car cela permet aux personnes qui peuvent rencontrer le meme probleme que vous, de retrouver rapidement quelle est la reponse qui a resolu leur probleme. De plus, cela encourage aussi la personne qui a repondu a votre question, et de repondre aux suivantes...




    vendredi 16 décembre 2016 21:08
  • ça se fait avec un Timer et GetLastInputInfo()

    Google donne de nombreux exemples  comme : https://code.msdn.microsoft.com/windowsdesktop/Monitorare-il-tempo-di-bba0178c

    (ou aussi avec les Low Level Hooks WH_MOUSE_LL et WH_KEYBOARD_LL)

    samedi 17 décembre 2016 09:24
  • Bonjour,

    merci à vous 2 pour vos réponses. Je n'ai pas encore eu l'occasion de tester vos propositions.

    Dès que je le peux, je vous confirme si cela fonctionne.

    Merci

    mardi 20 décembre 2016 19:20
  • Bonjour,

    j'ai eu l'occasion de tester les solutions proposées.

    Voici comment j'ai procédé:

    Mon application utilise des UserControl qui sont ajouté dynamiquement à ma fenêtre principale.

    1°- J'ai ajouté un Timer sur la fenêtre principale en définissant intervalle voulu.

     2°- J'ai défini dans le Timer Ticker l'action que je voulais faire

    private void timer1_Tick(object sender, EventArgs e)
            {
                counter--;
                if (counter == 0)
                {
                   ...
                }
            }

    3° J'ai créé un événement sur mon TableLayoutPanel principal pour l'événement "Mouse Move".

    Celui-ci remet le compte à rebours à sa valeur max.

    Attention à ce niveau là, comme j'utilise différent UserControl dans mon application, j'ai dû abonné les principaux éléments de mes UserControl à l'événement "Mouse Move" de la fenêtre parent.

    Juste une précision, l'événement se déclenche que si l'application est au premier plan et que les mouvements de la souris se font sur une partie de l'application.

    Je n'ai pas trouver d'autres solutions pour que l'événement se déclenche même si l'application n'est pas au premier plan.

    En espérant que cela pourra en aide d'autres.

    Encore merci

    mardi 17 janvier 2017 16:05