|
| Calculer inactivité d'un utilisateur |
| Iniciado por sebastien-65, 06,jun. 2011 18:43 - 10 respuestas |
| |
| | | |
|
| |
| Publicado el 06,junio 2011 - 18:43 |
Bonjour,
Je dois trouver une solution pour calculer le temps d'inactivité d'un utilisateur sur l'application.
En gros lorsque l'utilisateur ne clique plus, pas de saisie ou bien passe sur un autre logiciel j'aimerais "capté" cela et le comptabiliser...
Avez-vous une piste ou une idée pour m'aiguiller ?
Merci par avance |
| |
| |
| | | |
|
| | |
| |
| Publicado el 06,junio 2011 - 19:46 |
Pour le fait de passer sur un autre logiciel, utiliser la perte de focus pour lancer le calcul.
Pour l'inactivité, je ne vois pas trop, mais à partir des tâches actives par exemple |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 962 mensajes |
|
| Publicado el 07,junio 2011 - 01:46 |
bonsoir, par exemple une variable globale tempsInactivité que tu incrémentes toutes les secondes par un timer lancé au lancement de ton appli. Cette variable est remise à zéro par procédure appelée si appui clavier ou click souris. il y a peut être un évenement plus général.
Ami calmant, J.P  |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 84 mensajes |
|
| Publicado el 07,junio 2011 - 09:56 |
mouchard ?
je doute de la légalité de ce genre de verrue |
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,junio 2011 - 12:03 |
Bonjour,
voici une procedure qui calcul le temps d'inactivité il suffi t en init du projet ou au lancement de la premiere facture de faire :
// init du projet gtimerInactivite est un entier gtimerInactivite = TimerSys("Inactivite", 100)
// une procedure globale inactivité
PROCEDURE inactivite() LASTINPUTINFO est une structure cbTaille est un entier sans signe sur 4 dwTime est un entier FIN
FinTimerSys(gTimerInactivite) InfoUser est un LASTINPUTINFO InfoUser:cbTaille = Dimension(InfoUser ) SI API("user32","GetLastInputInfo",&InfoUser ) <> 0 ALORS // on verifie le temps d'inactivité ici 12 secondes : 6 000 1 minute SI (API("Kernel32","GetTickCount" )-InfoUser:dwTime) > 12000 ALORS Info("12 Secondes sans rien") FIN FIN gtimerInactivite = TimerSys("Inactivite", 100)
a modifier pour recuperer le temps en fait la valeur d'inactivité est : API("Kernel32","GetTickCount" )-InfoUser:dwTime) il suffit de l'ajouter a une variable globale pour voir combien de temps d'inactivite total on a
coridalement Firetox
"forum-course.com" <admin@forum-course.com> a écrit dans le message de news:adb83d427ee40fd4d54dc23d91d59a30@news.pcsoft...
mouchard ?
je doute de la légalité de ce genre de verrue
|
| |
| |
| | | |
|
| | |
| |
| Publicado el 07,junio 2011 - 13:41 |
Bonjour 
Merci pour les retours.
Firetox le code que tu donnes, permet bien de détecter l'inactivé d'un utilisateur sous Windows.
Par contre si l'utilisateur ouvre un autre logiciel ou surf sur internet, le processus d'inactivité ne tourne pas...
Donc le calcul n'est pas forcément bon. L'inactivité doit être uniquement récupéré pour le logiciel Windev.
Exemple un user lance le logiciel Windev mais ne travaille pas dessus, au bout de X minutes un timer se lance pour comptabiliser le temps de non activité sur le soft.
J'ai essayé plusieurs moyens mais rien de bien concluant... Mis à part l'interrogation de l'inactivité Windows ! |
| |
| |
| | | |
|
| | |
| |
Miembro registrado 5 mensajes |
|
| Publicado el 26,abril 2013 - 17:33 |
Salut,
Je déterre ce sujet car je suis tombé dessus en recherchant la même chose.
Voici la solution que j'utilise et qui réunit toutes les conditions.
Etape 1 : établir un TimerSys qui, dès arrivé à la fin, lance une procédure qui fera ce que l'on souhaite.
Etape 2 : établir des événements globaux sur le clic de souris et les touches : dès qu'un clic ou des touches sont appuyées, l'événement est levé et le TimerSys remis à zéro.
Variables et constantes globale du projet (Initialisation du projet) :
giTimerGlobal est un entier giFrequenceTimerGlobalSeconde est un entier = 180 CONSTANTE WM_LBUTTONUP = 514 WM_CHAR = 258 FIN
Evénements sur la fenêtre que l'on souhaite surveiller (Initialisation de la fenêtre) :
Evénement(ControleInactiviteGlobale, "*.*", WM_LBUTTONUP) Evénement(ControleInactiviteGlobale, "*.*", WM_CHAR)
Deux procédures globales :
Procedure ControleInactiviteGlobale() SI giTimerGlobal <> 0 ALORS FinTimerSys(giTimerGlobal) FIN giTimerGlobal = TimerSys(TimeOutGlobal, giFrequenceTimerGlobalSeconde * 100)
Procedure TimeOutGlobal()
FinTimerSys(giTimerGlobal)
giTimerGlobal = TimerSys(TimeOutGlobal, giFrequenceTimerGlobalSeconde * 100)
J'espère que ce code aura aidé d'autres personnes !
Bon codage !
Fabrice, Toulouse |
| |
| |
| | | |
|
| | |
| |
| Publicado el 02,marzo 2015 - 14:25 |
Merci Fabrice !!
C'est exactement ce que je cherchais |
| |
| |
| | | |
|
| | |
| |
| Publicado el 15,octubre 2015 - 09:59 |
Bonjour Fabrice,
Un grand merci pour ce code. ça marche nickel. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 17,noviembre 2015 - 14:55 |
Merci Fabrice KUCHTA le code,
j'ai pas bien compris l'étape 1 !
Cordialement. |
| |
| |
| | | |
|
| | |
| |
| Publicado el 29,noviembre 2019 - 17:16 |
| Merci, c'est exactement ce qu'il me fallait. |
| |
| |
| | | |
|
| | | | |
| | |
|