Cisusersleep - détecter l'absence de l'utilisateur

Soyez le premier à donner votre avis sur cette source.

Vue 8 588 fois - Téléchargée 882 fois

Description

Le code que je vous propose est composé d'une classe VB permettant de détecter facilement la présence ou non de l'utilisateur devant son écran. Le programme décide de l'absence de l'utilisateur si le curseur reste (+ ou -) immobile, aucune touche clavier n'a été préssée récemment et les joysticks 1 et 2 n'ont pas changés d'état. Le status passe également de présent à absent si l'écran de veille est en cours de fonctionnement.

L'intervalle entre chaque prise de décision est paramétrable (appelé période d'échantillonnage dans le code source) tout comme le 'retard' (taille de la fenêtre d'observation).

Applications :
  • mise en veille du système
  • exécution, lorsque l'utilisateur n'utilise pas sa machine, de programmes nécessitant beaucoup de ressources
  • ... ;-)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

zip83
Messages postés
1
Date d'inscription
mardi 29 juillet 2003
Statut
Membre
Dernière intervention
15 janvier 2009
-
Bonjour
Avec votre fichier, est-il possible de configurer automatiquement une action :
du style si absent deepuis 10 min, execution d'un programme ou d'une alerte sonore?

et si oui est-il possible de relancer une deuxième fois 5 minutes plus tard?
Merci
Egyde
Messages postés
161
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juillet 2007
-
Je viens de rajouter la détection de présence lorsque l'utilisateur manipule son joystick. Par contre, cette partie de code n'a pas été testé (j'en ai pas à disposition, dsl).
Egyde
Messages postés
161
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juillet 2007
-
Renfield > Par défaut, l'utilisateur est toujours présent. Ce n'est qu'en restant inactif au cours de la fenêtre (glissante) que son status passe à celui d'absent (si l'écran de veille est en train de tourner, son status passe bien sûr à absent).

La lecture d'un document ne pose donc pas de pb. Il suffit pour cela de choisir une fenêtre d'observation suffisament 'grande' (1h par exemple, même en fullscreen, 8pt, c bocoup)

Pr le joystick, ce n'est pas (encore) pris en compte. Si tu as une idée à ce propos, n'hésite pas :-)

Un autre cas à méditer serait par exemple la lecture d'une vidéo.
Renfield
Messages postés
17280
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
21 juillet 2019
57 -
si le user est en train de lire un article, un blog ou de la doc, et que sa seule activité et de jouer avec la molette, sera-t'il bien détecté comme présent ?
Egyde
Messages postés
161
Date d'inscription
lundi 17 mai 2004
Statut
Membre
Dernière intervention
16 juillet 2007
-
Je l'ai pas précisé dans la description mais la classe CIsUserSleep déclare l'utilisateur absent même si le curseur de la souris oscille de quelques pixels (comme c'est le cas avec certaines souris optiques), contrairement au code de Renfield.

Autre différence : alors que l'appel à l'API GetLastInputInfo doit se faire régulièrement à l'aide d'un timer inclus dans une form, la classe que j'ai proposé génère automatiquement l'évènement UserIsNotHere() en cas d'absence de l'utilisateur.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.