Vous commencez chaque journée avec les meilleures intentions, rajeuni, prêt à affronter toutes vos tâches. Ensuite, vous vérifiez l'heure, il est 03h00, et vous ne pouvez pas vous empêcher de vous demander, où est passé tout le temps?

Vous pouvez utiliser une application de suivi du temps dédiée, mais celles-ci peuvent être extrêmement complexes. De plus, où est le plaisir là-dedans?

Pourquoi ne pas créer votre propre mini-application simple à la place, qui pourrait suivre toutes les fenêtres sur lesquelles vous avez passé du temps pendant la journée? Vous n'aurez besoin que d'AutoHotKey, d'un traitement de texte de base comme le Bloc-notes, et d'environ une demi-heure. Enfonçons-nous.

Qu'est-ce qu'AutoHotKey ?

L'objectif principal d'AutoHotKey est l'automatisation du bureau. C'est un langage de script avec lequel vous pouvez envoyer des frappes et des mouvements de souris à n'importe quelle fenêtre active, créer des raccourcis clavier ou modifier des pressions de touche. Vous pouvez, par exemple, l'utiliser pour désactiver des touches spécifiques de votre clavier.

instagram viewer

Cependant, c'est la version courte de l'histoire et pas vraiment représentative de ce que AutoHotKey (AHK en abrégé) peut faire. C'est parce qu'il a évolué depuis sa conception initiale et est maintenant un langage de script complet. Vous pouvez penser à ce que vous pouvez faire avec comme « programmer Lite ».

Ainsi, vous pouvez également utiliser AHK pour créer des mini-applications, exactement comme ce que nous nous sommes fixé comme objectif pour cet article. Notez que dans cet article, nous allons plonger directement dans AHK, vous voudrez peut-être vérifier notre guide rapide AutoHotKey pour les débutants avant de commencer.

Création de votre propre script de journalisation de fenêtre avec AutoHotKey

Avant de commencer, vous devriez avoir installé AHK sur votre ordinateur car il agira comme « parseur » pour votre script. C'est "le moteur" qui va permettre à votre script de "s'exécuter".

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

Télécharger AutoHotKey de son site officiel et installez-le.

Lancez votre gestionnaire de fichiers préféré et visitez un dossier dans lequel vous souhaitez stocker votre script. Ensuite, faites un clic droit sur un emplacement vide et choisissez Nouveau > Script AutoHotKey.

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

1. Définir les variables nécessaires

Ouvrez le script dans votre éditeur préféré. Vous pouvez utiliser quelque chose d'aussi simple que le Bloc-notes fourni avec Windows, mais nous utiliserons Bloc-notes++ pour ce guide. Étant donné que Notepad ++ est gratuit et mieux adapté à cet objectif, cela vaut la peine de l'essayer. Assurez-vous également de vérifier notre guide ultime sur tous ses raccourcis clavier pendant que vous le vérifiez.

Notez que vous ne devez utiliser aucune application comme Word ou Google Docs, ce qui pourrait affecter sa mise en forme. Utilisez soit un éditeur de texte, soit un éditeur de "code".

Le script contiendra déjà quelques éléments de base recommandés pour la compatibilité et les performances. Laissez-les tels quels et démarrez votre script sous eux.

Commencer avec:

AppLoggingRate = 10; Intervalle de temps (en secondes) entre les captures de titre de fenêtre actives.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
DernièreFenêtreActive =

Nous commençons par attribuer la valeur "10" à AppLoggingRate, que nous utiliserons pour calculer le temps entre la capture des titres de fenêtre.

Lorsqu'il est utilisé avec la fonction Sleep d'AHK, 1000 est à peu près égal à une seconde. Ainsi, en le multipliant avec AppLogingRate, nous rendons la variable SleepTime "égale à dix secondes".

LogPath est le chemin où nous voulons stocker nos journaux. Nous utilisons la valeur %A_ScriptDir%, qui se traduit par "le dossier à partir duquel vous exécutez le script". Vous pouvez utiliser le chemin complet vers un autre dossier si vous le souhaitez.

Enfin, nous définissons LastActiveWindow sur vide. Nous l'utiliserons plus tard pour vérifier si la fenêtre active a changé.

2. Surveiller les fenêtres actives

Puisque nous voulons garder en permanence une trace de la fenêtre active et, si elle change, enregistrer son titre et son 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, nous pensons que le "code" suivant est relativement explicite:

Boucle
{
Sommeil %SleepTime%
Msgbox, ça marche !
}

Nous définissons une boucle en tapant simplement le mot "loop", puis en marquant son début par "{" et se terminant par "}". Tout ce qui se trouve dans les lignes entre "{" et "}" s'exécutera en permanence jusqu'à ce que vous quittiez le script.

Nous commençons la boucle en attendant (Sleep) une durée égale à la variable SleepTime. Nous l'avons défini comme variable dans le chapitre précédent pour rendre le contrôle du temps plus simple. Au lieu d'éditer le script lui-même, vous pouvez lui "dire", grâce à cette variable, combien de secondes chaque boucle doit durer.

Enfin, nous utilisons une Message Box pour tester notre script. Essayez de l'enregistrer et de l'exécuter (double-cliquez sur son fichier). Vous verrez une boîte de message indiquant « Ça fonctionne! » après dix 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. Ensuite, retournez dans votre éditeur et remplacez la ligne MsgBox par:

WinGetActiveTitle, ActiveWindow

C'est la commande pour obtenir le titre de la fenêtre active. Ignorez la ligne supplémentaire "StoreActiveWindow", que nous avons utilisée lors de l'écriture du script pour les tests.

3. Obtenez l'heure et le nom actuels

Vient maintenant la partie centrale de la logique du script. Nous voulons qu'elle compare le nom de la fenêtre active à la précédente, et s'ils sont différents, "faites quelque chose". C'est aussi simple que ceci:

Si ActiveWindow != %LastActiveWindow%
{
}

Avec ce qui précède, nous vérifions si la ActiveWindow actuelle est différente (!=) de la valeur stockée dans la variable LastActiveWindow (que nous avons initialement définie sur vide). Si c'est le cas, AHK exécutera le code entre { et }, qui pour l'instant sont vides.

Nous devons garder une trace de la date et de l'heure pour mesurer combien de temps une fenêtre a été active. Nous tiendrons des journaux différents pour chaque jour, en utilisant la date dans leur nom. Et nous voulons enregistrer non seulement chaque changement de fenêtre, mais aussi lorsque c'est arrivé. Pour cela, nous allons affecter différents formats d'heure aux variables LogTime et LogFilename, avec:

FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, aaaa-MMM-jj

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

4. Formatage des données

Nous avons saisi l'heure dans deux variables formatées différemment, ainsi que le titre de la fenêtre active. Cependant, il y a un petit problème: le titre d'une fenêtre peut également contenir des caractères que nous ne voulons pas. Nous pouvons supprimer tous les caractères non alphanumériques en utilisant le support d'AHK pour RegEx, avec:

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

Avec cela, nous "disons" à AHK de supprimer tous les caractères de la variable ActiveWindow qui ne correspondent pas à ce qui est entre parenthèses:

  • Minuscules
  • Majuscules
  • Nombres

Ensuite, nous affectons le résultat à la variable LogWindow.

Une fois toutes les variables définies et toutes les données précieuses saisies, nous sommes prêts à formater notre fichier journal et son contenu.

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

Nous avons précédemment attribué la date actuelle à la variable LogFilename. Ainsi, avec la première ligne, nous déclarons simplement que nous voulons ajouter "_AppLog.md" à la date pour l'utiliser comme nom de fichier.

Dans la deuxième ligne, nous combinons la variable LogPath, que nous avons définie au début comme destination de nos journaux, avec le nom de fichier. Leur combinaison est le chemin d'accès complet du journal, affecté à la variable LogFile.

Attribuons l'équivalent 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
  • Les "`n" indiquent à AHK d'entrer une nouvelle ligne (l'équivalent d'appuyer une fois sur Entrée).
  • Les trois tirets apparaîtront comme un séparateur lorsqu'ils seront présentés dans une visionneuse compatible avec les démarques.
  • "%LogTime%" et "%LogWindow%" sont les variables où nous avons stocké le nom de la fenêtre active et l'heure à laquelle elle a été détectée.

5. Mettre à jour le fichier

Nous avons défini ce que nous voulons écrire dans notre fichier, et nous connaissons son chemin et son nom. Il ne reste plus que l'écriture proprement dite, qui est aussi simple que:

FileAppend, %FileContent%, %LogFile%

C'est presque aussi simple que l'anglais simple: nous ajoutons tout dans la variable "FileContent" au fichier "LogFile".

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

Mais attendez, il y a un dernier ajustement: remplacer le contenu de la variable LastActiveWindow par la fenêtre actuellement active.

Avec cela, le script sera capable de détecter le Suivant changement de fenêtre.

LastActiveWindow = %ActiveWindow%

Et avec ce dernier ajout, votre enregistreur de fenêtre est prêt! Enregistrez-le et exécutez-le. Ensuite, consultez le fichier de démarques, qui apparaîtra dans le dossier de votre fichier de script après dix secondes.

Maîtrisez votre temps

Vous pouvez ouvrir votre fichier journal avec n'importe quel éditeur de texte. Néanmoins, il sera plus joli si vous l'ouvrez dans un éditeur compatible avec les démarques. Dans la capture d'écran, vous pouvez voir notre journal dans le populaire éditeur Typora.

C'est un moyen facile de vérifier quelles applications vous avez passées le plus de temps, et vous n'avez besoin que de quelque chose comme le Bloc-notes pour l'utiliser.

Si vous souhaitez quelque chose de « plus », vous pouvez toujours « styliser » la sortie de votre enregistreur pour produire des fichiers CSV à la place. C'est aussi simple que de peaufiner 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 trackers de temps tiers.

Script complet :

#NoEnv; Recommandé pour les performances et la compatibilité avec les futures versions d'AutoHotkey.
; #Avertir; Activez les avertissements pour aider à détecter les erreurs courantes.
Entrée mode d'envoi; Recommandé pour les nouveaux scripts en raison de sa vitesse et de sa fiabilité supérieures.
SetWorkingDir %A_ScriptDir%; Assure un répertoire de départ cohérent.
; Variables
;
AppLoggingRate = 10; Intervalle de temps (en secondes) entre les captures de titre de fenêtre actives.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
DernièreFenêtreActive =
; Logique
;
Boucle
{
Sommeil %SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Si ActiveWindow != %LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, aaaa-MM-jj
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
dormir 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Sortir
10 scripts AutoHotkey sympas (et comment créer le vôtre !)

AutoHotkey vous permet de créer des raccourcis Windows personnalisés, des macros et plus encore! Voici quelques scripts AutoHotkey utiles pour vous aider à démarrer.

Lire la suite

PartagerTweeterE-mail
Rubriques connexes
  • les fenêtres
  • Productivité
  • les fenêtres
  • Raccourci automatique
  • Gestion du temps
  • Astuces de productivité
A propos de l'auteur
Odysseas Kourafalos (12 articles publiés)

La vraie vie d'OK a commencé vers 10 ans, quand il a eu son premier ordinateur - un Commodore 128. Depuis lors, il fait fondre les touches en tapant 24 heures sur 24, 7 jours sur 7, essayant de diffuser The Word Of Tech à toute personne suffisamment intéressée pour écouter. Ou plutôt, lisez.

Plus d'Odysseas Kourafalos

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner