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

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

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.