Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Vous commencez votre travail chaque jour tôt afin de pouvoir tout résoudre pendant la journée. Ensuite, vous vérifiez l'horloge et il est 3 heures du matin mais votre travail n'est toujours pas terminé. Alors, où est passé le temps ?

Vous pouvez utiliser une application dédiée au suivi du temps, mais cela peut être compliqué et frustrant. Au lieu de cela, pourquoi ne pas créer votre propre petite application simple ? Cette application peut suivre toutes les fenêtres que vous avez utilisées pendant la journée. Vous avez juste besoin d'AutoHotKey, d'un traitement de texte de base comme le Bloc-notes, et d'environ une demi-heure. Commençons!

Créez votre propre script de journalisation Windows avec AutoHotKey

Avant de commencer, vous devez installer AHK sur votre ordinateur car il agira comme un « analyseur » pour le script. C'est l'outil qui permettra à votre script de "s'exécuter".

Remarque : Vous pouvez également compiler le script une fois terminé pour le transformer en un véritable programme exécutable. Cependant, cela dépasse le cadre de cet article.

Téléchargez AutoHotKey depuis le site officiel et installez-le.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Sélectionnez Nouveau > Script AutoHotKey

Lancez votre gestionnaire de fichiers préféré et accédez au dossier dans lequel vous souhaitez stocker le script. Ensuite, faites un clic droit sur un emplacement vide et sélectionnez Nouveau > AutoHotKey Script .

Une fois terminé, il est temps d'écrire le script proprement dit.

1. Identifiez les variables nécessaires

Ouvrez le script dans votre éditeur préféré. Vous pouvez utiliser quelque chose de simple comme le Bloc-notes fourni avec Windows, mais l'article utilisera Notepad++  pour ce didacticiel. Notepad++ est gratuit et mieux adapté à cet effet, vous devriez donc l'essayer.

Notez que vous ne devez utiliser aucune application telle que Word ou Google Docs, car cela pourrait affecter le formatage du script. Utilisez un éditeur de texte ou de code.

Le script contiendra quelques informations de base recommandées sur la compatibilité et les performances. Laissez-les tels quels et démarrez le script ci-dessous.

Commence avec:

AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Commencez par attribuer la valeur « 10 » à AppLoggingRate , qui sera utilisée pour calculer le temps entre les tentatives de journalisation des fenêtres.

Lorsqu'il est utilisé avec la fonction Sleep d'AHK, 1000 équivaut à peu près à une seconde. Ainsi, en le multipliant par AppLogingRate , vous rendrez la variable SleepTime "égale à 10 secondes".

LogPath est le chemin utilisé pour stocker les journaux. L'exemple utilise la valeur %A_ScriptDir% , qui se traduit par « le répertoire à partir duquel vous exécutez le script ». Vous pouvez utiliser le chemin complet vers un autre dossier si vous le souhaitez.

Enfin, définissez LastActiveWindow sur vide et utilisez-le plus tard pour vérifier si la fenêtre active a changé.

2. Surveillez les fenêtres actives

Puisque nous voulons surveiller en permanence quelle fenêtre est active et si elle change, enregistrer le titre et l'heure, nous devrons utiliser une « boucle ».

Comme son nom l'indique, une boucle s'exécute en continu, répétant la ou les mêmes fonctions. Grâce à la syntaxe simple d'AHK, le « code » suivant est relativement facile à comprendre :

Loop
{
    Sleep %SleepTime%
    Msgbox, It Works!
}

Définissez une boucle en tapant simplement le mot "loop", puis en marquant son début par "{" et sa fin par "}". Tout ce qui se trouve entre "{" et "}" s'exécutera indéfiniment jusqu'à ce que vous quittiez le script.

Démarrez la boucle en attendant ( Sleep ) pendant une durée égale à la variable SleepTime. Cette variable simplifie le contrôle du temps. Au lieu d'éditer le script vous-même, vous pouvez lui "indiquer", via cette variable, combien de secondes doit durer chaque boucle.

Enfin, utilisez Message Box pour tester le script. Essayez de l'enregistrer et de l'exécuter (double-cliquez sur le fichier de script). Vous verrez une boîte de message indiquant « Ça marche ! » (le script fonctionne) après 10 secondes.

Cliquez avec le bouton droit sur l'icône d'AHK dans la barre d'état Windows et quittez le script lorsque vous avez suffisamment de boîtes de message. Revenez ensuite dans l'éditeur et remplacez la ligne MsgBox par :

WinGetActiveTitle, ActiveWindow

C'est la commande pour obtenir le titre de la fenêtre active. Omettez la ligne supplémentaire "StoreActiveWindow" que l'exemple a utilisée lors de la création de scripts pour les tests.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Récupère le titre de la fenêtre active et stocke-le dans une variable

3. Obtenez l'heure et le nom actuels

Vient maintenant le cœur de la logique du script. Comparez le nom de la fenêtre active avec le précédent, et s'ils diffèrent, "faites quelque chose". Tout est aussi simple que ceci :

If ActiveWindow != %LastActiveWindow%
{
}

Compte tenu de ce qui précède, vérifiez si l' ActiveWindow actuelle est différente ( != ) de la valeur stockée dans la variable LastActiveWindow (qui était initialement définie sur vide). Si tel est le cas, AHK exécutera le code entre { et } , qui est actuellement vide.

Définissez la fonction pour comparer le titre de la fenêtre active et la fenêtre précédente

Il est nécessaire de suivre à la fois la date et l’heure pour mesurer la disponibilité d’une fenêtre. Des journaux différents pour chaque jour, utilisant la date en leur nom seront conservés. Non seulement chaque changement, mais aussi l’heure à laquelle il se produit sera également enregistré. Pour ce faire, attribuez différents formats d'heure aux variables LogTime et LogFilename , avec :

FormatTime, LogTime,, HH:mm:ss
FormatTime, LogFilename,, yyyy-MMM-dd

Ajoutez ces lignes entre les accolades dans "If ActiveWindow..." , afin qu'AHK les exécute lorsqu'il détecte un changement de fenêtre.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Obtenez l'heure actuelle et attribuez-la à deux variables de formats différents

4. Format des données

Nous capturons maintenant l'heure dans deux variables formatées différemment, ainsi que le titre de la fenêtre active. Il y a cependant un petit problème : le titre de la fenêtre peut également contenir des caractères indésirables. Il est possible de supprimer tous les caractères non alphanumériques en utilisant la prise en charge de RegEx par AHK, avec :

LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")

Dans cet esprit, « demandons » à AHK de supprimer tous les caractères de la variable ActiveWindow qui ne correspondent pas à ce qui est entre parenthèses :

  • Minuscule
  • Lettre majuscule
  • Nombres

Ensuite, affectez le résultat à la variable LogWindow.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Nettoyer le titre de la fenêtre active avec RegEx

Une fois toutes les variables définies et toutes les données précieuses collectées, vous êtes maintenant prêt à formater le fichier journal et son contenu.

LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%

Auparavant, nous attribuions la date actuelle à la variable LogFilename. Par conséquent, pour la première ligne, ajoutez "_AppLog.md" à la date pour l'utiliser comme nom de fichier.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Définir le nom du fichier journal

Dans la deuxième ligne, combinez la variable LogPath , définie au début comme destination du fichier journal avec le nom du fichier. Leur combinaison constitue le chemin complet du fichier journal, attribué à la variable LogFile.

Attribuons la valeur équivalente de "ligne vide, Heure - Nom de la fenêtre, deux autres lignes vides, un séparateur et une autre ligne vide, pour faire bonne mesure" à la variable FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • La lettre « n » indique à AHK de saisir une nouvelle ligne (équivalent à appuyer une fois sur Entrée ).
  • Trois tirets apparaîtront comme séparateur lors de l'affichage dans une visionneuse compatible croisée vers le bas.
  • "% LogTime%" et "% LogWindow%" sont des variables qui stockent le nom de la fenêtre active et l'heure à laquelle elle a été détectée.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Détermine le contenu du fichier journal

5. Mettre à jour les fichiers

Vous avez défini ce que nous voulons écrire dans le fichier, ainsi que son chemin et son nom de fichier. Il ne reste plus que le texte simple et réel suivant :

FileAppend, %FileContent%, %LogFile%

Ajoutez tout ce qui se trouve dans la variable "FileContent" au fichier "LogFile".

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Utilisez la fonction Append d'AHK pour mettre à jour le fichier journal ou en créer un à partir de zéro

La fonction "append" ajoutera "FileContent" au fichier s'il existe, mais le créera également à partir de zéro si le fichier n'existe pas.

Il y a un dernier ajustement : remplacez le contenu de la variable LastActiveWindow par la fenêtre actuellement active.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Insère le titre de la fenêtre active actuelle dans la variable LastActiveWindow pour les tests futurs

Pour ce faire, le script doit être capable de détecter le prochain changement de fenêtre.

LastActiveWindow = %ActiveWindow%

Et avec ce dernier ajout, l'enregistreur Windows est prêt ! Enregistrez le script et exécutez-le. Ensuite, vérifiez le fichier markdown, ce fichier apparaîtra dans le dossier du fichier script après 10 secondes.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Le fichier journal Windows est créé dans le même répertoire que le script

Prenez le contrôle de votre temps

Vous pouvez ouvrir le fichier journal avec n'importe quel éditeur de texte. Cependant, il sera meilleur si vous l'ouvrez dans un éditeur compatible avec Markdown. Dans la capture d'écran, vous pouvez voir le journal dans l'éditeur Typora populaire.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Le fichier markdown généré par le script est chargé dans Typora

C'est un moyen simple de vérifier quelles applications vous utilisez le plus de temps et son utilisation ne nécessite qu'un outil tel que le Bloc-notes.

Si vous voulez quelque chose de « plus spécial », vous pouvez toujours « styliser » la sortie de l'enregistreur pour créer un fichier CSV à la place. C'est aussi simple que d'ajuster la variable FileContent et l'extension du fichier créé. Vous pouvez ensuite importer ces fichiers dans des applications comme Excel, Google Calc ou même des outils de suivi du temps tiers.

Scénario complet

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
; Variables
; ---------
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow = 
; Logic
; -----
Loop
{
	Sleep %SleepTime%
	
	WinGetActiveTitle, ActiveWindow
	StoreActiveWindow = %ActiveWindow%
	
	If ActiveWindow != %LastActiveWindow%
	{
		FormatTime, LogTime,, HH:mm:ss
		FormatTime, LogFilename, , yyyy-MM-dd
		
		LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
		
		LogFilename = %LogFilename%_AppLog.md
		LogFile = %LogPath%\%LogFilename%
		
		FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
		
		sleep 50
		
		FileAppend, %FileContent%, %LogFile%
		LastActiveWindow = %ActiveWindow%
	}
}
Exit

De belles images uniques du 20 octobre pour les femmes

De belles images uniques du 20 octobre pour les femmes

Lors de cette fête spéciale, outre les cadeaux uniques, les images de félicitations pour le 20 octobre sont toujours recherchées par de nombreuses personnes. Ci-dessous quelques-unes des plus belles images de félicitations du 20 octobre, soyez le premier à les envoyer aux grands-mères, mères, sœurs et enfants !

Comment utiliser Cortana pour éteindre ou redémarrer Windows 10 ?

Comment utiliser Cortana pour éteindre ou redémarrer Windows 10 ?

L'assistant virtuel Cortana est l'une des nouvelles fonctionnalités intégrées à Windows 10 et s'affiche directement dans la barre des tâches. Les utilisateurs doivent simplement parler dans le microphone de l'appareil, poser des questions ou donner des commandes de contrôle, Cortana répondra à la question ou suivra les commandes vocales de l'utilisateur.

Comment télécharger Facebook Messenger sur Windows 10

Comment télécharger Facebook Messenger sur Windows 10

Bien que vous puissiez déjà utiliser Messenger sur un navigateur Web, Facebook crée désormais également une application de bureau pour Windows 10 et macOS.

Revue Malwarebytes : un excellent programme anti-malware de première ligne

Revue Malwarebytes : un excellent programme anti-malware de première ligne

MalwareBytes est un outil de détection et de suppression de logiciels malveillants disponible gratuitement et dispose également d'une version premium qui ajoute des fonctionnalités importantes. Il est capable de détecter et de supprimer tous les types de logiciels malveillants, notamment les logiciels espions, les chevaux de Troie, les vers et même les ransomwares.

Que fait la restauration du système dans Windows 10 ?

Que fait la restauration du système dans Windows 10 ?

L'article d'aujourd'hui vous aidera à trouver la meilleure méthode d'utilisation de la restauration du système, en déterminant sa taille complète sur un PC ou un ordinateur portable Windows 10.

Microsoft a publié la mise à jour Windows 10 Insider build 17682 pour rendre Windows plus stable

Microsoft a publié la mise à jour Windows 10 Insider build 17682 pour rendre Windows plus stable

Récemment, Microsoft a publié la mise à jour Windows 10 Insider build 17682 avec de nombreuses fonctionnalités améliorées qui promettent de rendre Windows plus stable et d'améliorer les performances.

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Comment créer une application de suivi du temps sous Windows avec AutoHotKey

Cette application peut suivre toutes les fenêtres que vous avez utilisées pendant la journée. Vous avez juste besoin d'AutoHotKey, d'un traitement de texte de base comme le Bloc-notes, et d'environ une demi-heure.

Comment installer les suppléments invité dans VirtualBox

Comment installer les suppléments invité dans VirtualBox

VirtualBox est un excellent logiciel, notamment pour les développeurs. Vous pouvez rencontrer des problèmes de performances et l’intégration avec le système d’exploitation de base (également appelé système d’exploitation « hôte ») n’est pas très adaptée.

Instructions pour changer le sens de défilement du pavé tactile Windows 10

Instructions pour changer le sens de défilement du pavé tactile Windows 10

Pour pouvoir faire défiler une page ou une fenêtre sous Windows 10, en plus d'utiliser la souris, on va déplacer notre doigt de haut en bas sur le Touchpad. Cependant, on peut également modifier cette opération par défaut avec une opération assez simple.

Connectez le téléphone Android à Windows 10 avec Continuer sur PC

Connectez le téléphone Android à Windows 10 avec Continuer sur PC

Les smartphones disposent aujourd'hui de nombreuses nouvelles fonctionnalités et sont considérés comme des ordinateurs miniatures. Cependant, tout ne peut pas être fait sur cet appareil. Microsoft comprend cela, c'est pourquoi avec la prochaine mise à jour Fall Creators, la société introduira une nouvelle fonctionnalité de liaison téléphone à PC qui permettra aux utilisateurs de travailler sur le téléphone, puis de le transférer vers le système Windows 10.