Bonjour
J'ai déjà été confronté à ce problème, et les solutions sont moins évidentes qu'il n'y paraît.
Il est d'abord nécessaire d'identifier l'utilisateur. On peut créer une session pour chacun, mais on doit alors garantir qu'aucun n'utilisera celle des autres.
D'autre part, ce n'est pas parce qu'une session est ouverte que l'utilisateur est forcément derrière l'ordinateur en train de l'utiliser. Par expérience, je sais qu'on finit toujours, tôt ou tard, par laisser l'ordinateur allumé avec sa session ouverte.
L'indicateur le plus tangible d'une utilisation réelle de l'ordinateur est l'activité du clavier et de la souris. Mais alors, certaines utilisations comme l'écoute d'un morceau de musique et la visualisation d'une vidéo ne peuvent pas être comptabilisées par ce biais.
La solution que j'ai fini par adopter est malheureusement imparfaite. Elle consiste à créer une session protégée par mot de passe pour chaque utilisateur, et d'activer une mise en veille avec verrouillage (en cochant "Préférences système">"Sécurité">"Mot de passe exigé après suspension d'activité ou lancement de l'économiseur d'écran"). Le décompte du temps l'activité est réalisé indépendament pour chaque session (stockage dans un fichier) et intervient une fois toutes les deux minutes en testant si un événement clavier ou souris est intervenu dans ce laps de temps.