Bonjour à tous.

J'ai développé une application ou des utilisateurs se connectent avec un badge via un lecteur de badge USB.

Cependant, j'avais besoin de fournir un moyen de déconnexion automatique après X secondes sans activité sur le terminal.

Je me suis donc servi du projet suivant : https://www.codeproject.com/Articles...56#xx5374356xx

J'ai intégré la classe Win32.cs à mon projet.

Cependant, mon problème est le suivant : si je démarre le terminal à 06h du matin et que je souhaite une déconnexion automatique après 2 minutes, le premier utilisateur va se connecter à 06h15, il y aura 13mn que la dernière action sur le PC se sera déroulée. Donc il va déconnecter directement la personne. Ce qui est correct.

Pour palier à ce problème et comme solution d'urgence j'ai simulé un clic de souris en haut à gauche au moment de la connexion de l'utilisateur : le dernier événement est donc lorsque l'utilisateur passe son badge et le timer peut vraiment commencer.

Afin de faire plus propre et moins bidouille, j'aimerais savoir s'il est possible avec la classe Win32.cs du projet ci-dessus, réinitialiser le timer au moment de la connexion de la personne. En plus clair : assigner la date de dernière événement de la classe = DateTime.Now (au moment de la connexion)

Merci.

Juste pour info voici le code du timer : (pour info, iTimer = 10)

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
 
private void tmrLogoff_Tick(object sender, EventArgs e)
        {
           // Je vérifie qu'un matricule est connecté. Si aucun matricule est 
           // connecté alors inutile de lancer une déconnexion
           if (strMatricule != "" && strMatricule != null)
            {
                // Lorsque le temps depuis la dernière action sur le PC est 
                // plus grand (en secondes) que la valeur du temps après
                // lequel je souhaite déconnecté mon utilisateur
                // alors je le déconnecte.
                if (Win32_API.Win32.GetIdleTime() > iTimerLogoff * 1000)
                {
                    LogoffUser();
                }
            }
         }