Bonjour,
Une idée de projet m'a traversé l'esprit : écrire un programme qui me donne une estimation (i.e. : pas besoin de résultats parfaits à la microseconde près) de la durée d'utilisation des applications que j'utilise.
Pour vous donner un exemple, je souhaite que mon programme me dise (ou m'écrive ) un truc du genre : "Aujourd'hui, tu as utilisé Firefox pendant 3 heures, Dev-C++ pendant 8 heures et notepad pendant 2 minutes".
Ok ?
J'en suis au stade où j'essaye de trouver des méthodes pour arriver à mes fins et pour l'instant j'ai pensé à deux possibilités :
- régulièrement appeler GetForegroundWindow(), utiliser le handle pour obtenir le PID du processus lié et énumérer les modules à partir du PID pour avoir le chemin de l'exécutable ;
- créer un hook avec SetWindwosHookEx(), récupérer le handle de la fenêtre concernée lorsqu'un message WM_SETFOCUS est récupéré, utiliser le handle pour récupérer le PID puis le chemin vers l'exécutable.
Dans les deux cas, je peux créer une liste de la forme :Pour avoir, par exemple, la durée d'utilisation de l'application X je n'aurai qu'à calculer : ( dateHeure02 - dateHeure01) + ( dateHeure04 - dateHeure03 ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 dateHeure01 applicationX dateHeure02 applicationY dateHeure03 applicationX dateHeure04 applicationZ dateHeure05 applicationY ...
Vous suivez toujours ?
La seconde méthode me semble plus "propre".
Première question : qu'en pensez-vous ?
Deuxième question : verriez-vous une autre façon de faire ?
Maintenant, j'ai un autre problème : il m'arrive d'utiliser des applications en ligne de commande. Or, avec les deux méthodes décrites ci-dessus, j'obtiendrai probablement un résultat du type "Aujourd'hui, tu as utilisé cmd.exe pendant 20 minutes" si je lance ces applications à partir de cmd.exe (puisque c'est lui qui aura créé une fenêtre). Ce qui m'amène à ma...
Troisième question : comment faire dans ce cas ?
Enfin, j'aimerai aussi que mon programme soit averti aux moments où je verrouillerai ma session pour aller boire un café au bar du coin et où je la déverrouillerai quand je serai revenu.
Quatrième question : est-il, à votre connaissance, possible d'être averti de ces événements, sans avoir à lire le journal des événements ?
Merci d'avance
Partager