![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
ebastien
Dans le même timer. Tu stockes quelque part son heure de connexion et dans ton timer, tu testes que CurrentTime - ConnectTime >= X minutes (en plus de ton test sur l'inactivité) pour savoir si tu dois le déconnecter. Donc s'il est connecté depuis moins de X minutes : pas de deconnexion. Si connecté depuis plus de X minutes et pas d'activité depuis plus de X minutes => Déconnexion.
J'ai utilisé cette solution !
Je déclare 2 variables en globale : une de type date et une pour calculer la différence de temps après
1 2 3
| // Variable de date pour l'heure de connexion test de déconnexion auto
DateTime dtHeureConnexion;
TimeSpan tsHConnexionDtNow; |
À la connexion de l'utilisateur avec son badge, dans l'événement, j'assigne la variable dtHeureConnexion :
dtHeureConnexion = DateTime.Now;
Et dans le timer, je calcule la différence de temps dans le TimeSpan déclaré plus haut, je mets les secondes dans une double et je rajoute un && dans le 2ème If
1 2 3 4 5 6 7 8 9 10 11 12 13
| private void tmrLogoff_Tick(object sender, EventArgs e)
{
if (strMatricule != "" && strMatricule != null)
{
tsHConnexionDtNow = DateTime.Now - dtHeureConnexion;
double dblTotalSeconds = tsHConnexionDtNow.Seconds;
if (Win32_API.Win32.GetIdleTime() > iTimerLogoff * 1000 && dblTotalSeconds > iTimerLogoff)
{
Reinit();
}
}
} |
C'est au top !! Merci.
Partager