Détecter l'inactivité d'un utilisateur sur son poste

Soyez le premier à donner votre avis sur cette source.

Vue 8 284 fois - Téléchargée 1 037 fois

Description

Ce code source permet de détecter l'inactivité d'un utilisateur sur un poste de travail (via un DLL). La détection se fait par rapport au système et non pas à l'application appelante. Donc, quelque soit l'action de l'usager (clavier ou souris) sur son système, elle sera détectée et un programme utilisant ce DLL pourrait savoir le temps exact depuis la dernière action de l'utilisateur. Utile si nous voulons effectuer du traitement si un utilisateur est inactif pendant une certaine période de temps dans notre programme (par exemple, demande de réauthentification ou déconnection de l'utilisateur après un certain laps de temps).

Conclusion :


Le zip attaché à ce message contient 2 projets. Le premier, HookSystem, contient le code source du DLL en tant que tel. Il serait bien pour vous de modifier la seule constante de ce DLL selon vos besoins, le reste du code est selon moi correct comme il est. Vous devrez le rebuilder, je n'ai laissé que le .dpr et le .pas.

Le second projet, Exemple, contient le code d'une application qui utilise ce DLL. Vous pouvez vous fiez sur ce code dans vos projets pour utiliser un tel DLL. Vous pouvez aussi exécuter ce projet afin de voir le résultat (Ce n'est qu'une petite fenêtre qui indique le temps depuis dernière action de l'usager). Vous devrez le rebuilder, je n'ai laissé que le .dpr, le .pas et le .dfm.

Deux point importants.

1- Le DLL doit se trouver dans le même répertoire que l'exécutable (ou visible via les variables d'environnement) pour que l'application puisse le charger dynamiquement.

2- TRÈS IMPORTANT. Une application utilisant la procédure Hook, qui démmarre la détection, doit absolument appeler la méthode UnHook avant la fin de son exécution, sinon le comportement de l'application lors d'une prochaine exécution serait "biz" (Les hooks sont stoppés mais le DLL croit qu'il ne le sont pas, finalement ça ne fonctionnerait plus).

Les commentaires sont bienvenus!

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cmen76
Messages postés
1
Date d'inscription
jeudi 2 octobre 2003
Statut
Membre
Dernière intervention
23 juin 2006
-
Salut,
Même problème que PhilLU.
Résolu en chargeant la DLL sur le FormCreate, en la déchargeant sur le FormDestroy, et en commentant tous les autres LoadLibrary et FreeLibrary ainsi que les déclarations var vDllHandle.
(vDllHandle déclaré en private du Form)
Apparemment le déchargement de la DLL remettait à blanc le champ Timer...
En tout cas : simple et clair ! Bravo.
Cmen76
PhilLU
Messages postés
249
Date d'inscription
lundi 9 novembre 2009
Statut
Membre
Dernière intervention
6 mai 2018
-
Salut,
J'ai testé l'appli(dll + prgm test). Elle m'affiche bien 00:00:00 mais, alors que la souris reste immobile le compteur ne démarre pas?!?
J'ai bien fait attention aux consignes (stopper la détection avant d'arrèter l'appli)
What's the matter?
Sinon c'est effectivement ce que je cherche,
A+
Phil.
cs_vieuxsinge
Messages postés
2
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
6 avril 2006
-
Extra ce petit bout de code, je me permet de l'integrer à mon soft , rien à redire.
Merci.

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.