Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Je begint elke dag vroeg met je werk, zodat je overdag alles kunt oplossen. Dan kijk je op de klok en het is 3 uur 's nachts, maar je werk is nog steeds niet klaar. Dus waar is de tijd gebleven?

U kunt een speciale tijdregistratie-app gebruiken, maar deze kunnen ingewikkeld en frustrerend zijn. Waarom zou u in plaats daarvan niet uw eigen eenvoudige kleine app maken? Deze applicatie kan alle vensters volgen die u gedurende de dag hebt gebruikt. Je hebt alleen AutoHotKey nodig, een eenvoudige tekstverwerker zoals Kladblok, en ongeveer een half uur. Laten we beginnen!

Maak uw eigen Windows-logboekscript met AutoHotKey

Voordat u begint, moet u AHK op uw computer installeren, omdat dit als een "parser" voor het script zal fungeren. Het is de tool waarmee uw script kan worden "uitgevoerd".

Opmerking : u kunt het script na voltooiing ook compileren om er een echt uitvoerbaar programma van te maken. Dat valt echter buiten het bestek van dit artikel.

Download AutoHotKey van de officiële website en installeer het.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Selecteer Nieuw > AutoHotKey-script

Start uw favoriete bestandsbeheerder en open de map waarin u het script wilt opslaan. Klik vervolgens met de rechtermuisknop op een lege locatie en selecteer Nieuw > AutoHotKey Script .

Eenmaal voltooid, is het tijd om het eigenlijke script te schrijven.

1. Identificeer de noodzakelijke variabelen

Open het script in uw favoriete editor. U kunt iets eenvoudigs gebruiken, zoals Kladblok dat bij Windows wordt geleverd, maar in het artikel wordt voor deze zelfstudie gebruik gemaakt van Notepad++  . Notepad++ is gratis en beter geschikt voor dit doel, dus u moet het uitproberen.

Houd er rekening mee dat u geen applicaties zoals Word of Google Docs mag gebruiken, omdat deze de opmaak van het script kunnen beïnvloeden. Gebruik een tekst- of code-editor.

Het script bevat enkele aanbevolen basisinformatie over compatibiliteit en prestaties. Laat ze zoals ze zijn en start het onderstaande script.

Begint met:

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

Begin met het toewijzen van de waarde "10" aan AppLoggingRate , die wordt gebruikt om de tijd tussen vensterlogboekpogingen te berekenen.

Bij gebruik met de slaapfunctie van AHK is 1000 ongeveer gelijk aan één seconde. Dus door het te vermenigvuldigen met AppLogingRate , maakt u de SleepTime-variabele "gelijk aan 10 seconden".

LogPath is het pad dat wordt gebruikt om logboeken op te slaan. In het voorbeeld wordt de waarde %A_ScriptDir% gebruikt , wat zich vertaalt naar "de map van waaruit u het script uitvoert". U kunt desgewenst het volledige pad naar een andere map gebruiken.

Stel ten slotte LastActiveWindow in op leegmaken en gebruik het later om te controleren of het actieve venster is gewijzigd.

2. Houd actieve vensters in de gaten

Omdat we continu willen monitoren welk venster actief is en als dit verandert, de titel en tijd willen vastleggen, zullen we een “loop” moeten gebruiken.

Zoals de naam al doet vermoeden, loopt er continu een lus, waarbij dezelfde functie(s) wordt herhaald. Dankzij de eenvoudige syntaxis van AHK is de volgende "code" relatief eenvoudig te begrijpen:

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

Definieer een lus door simpelweg het woord "loop" te typen en het begin ervan te markeren met "{" en te eindigen met "}". Alles in de regels tussen "{" en "}" blijft voor altijd actief totdat u het script afsluit.

Start de lus door te wachten ( Sleep ) gedurende een tijdsduur die gelijk is aan de SleepTime-variabele. Deze variabele maakt tijdcontrole eenvoudiger. In plaats van het script zelf te bewerken, kunt u via deze variabele "vertellen" hoeveel seconden elke lus moet duren.

Gebruik ten slotte Message Box om het script te testen. Probeer het op te slaan en uit te voeren (dubbelklik op het scriptbestand). U ziet een berichtvenster met de tekst 'Het werkt!' (script werkt) na 10 seconden.

Klik met de rechtermuisknop op het pictogram van AHK in het Windows-vak en sluit het script af als u voldoende berichtvensters heeft. Ga vervolgens terug naar de editor en vervang de MsgBox- regel door:

WinGetActiveTitle, ActiveWindow

Dit is het commando om de titel van het actieve venster op te halen. Laat de extra regel "StoreActiveWindow" weg die in het voorbeeld werd gebruikt tijdens het testen van scripts.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Haal de titel van het actieve venster op en sla deze op in een variabele

3. Haal de huidige tijd en naam op

Nu komt de kern van de scriptlogica. Vergelijk de naam van het actieve venster met de vorige, en als deze verschillen, "doe dan iets". Alles is zo eenvoudig als dit:

If ActiveWindow != %LastActiveWindow%
{
}

Controleer, gezien het bovenstaande, of de huidige ActiveWindow verschilt ( != ) van de waarde die is opgeslagen in de LastActiveWindow- variabele (die aanvankelijk was ingesteld op leeg). Als dat zo is, zal AHK de code tussen { en } uitvoeren , die momenteel leeg is.

Stel de functie in om de titel van het actieve venster en het vorige venster te vergelijken

Het is noodzakelijk om zowel de datum als de tijd bij te houden om de uptime van een venster te meten. Er worden voor elke dag verschillende logboeken bewaard, waarbij de datum in hun naam wordt gebruikt. Niet alleen elke wijziging, maar ook het tijdstip waarop deze plaatsvindt, wordt geregistreerd. Om dat te doen, wijst u verschillende tijdnotaties toe aan de variabelen LogTime en LogFilename , met:

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

Voeg deze regels toe tussen de accolades in "If ActiveWindow..." , zodat AHK ze uitvoert wanneer er een vensterwijziging wordt gedetecteerd.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Haal de huidige tijd op en wijs deze toe aan twee variabelen met verschillende formaten

4. Gegevensformaat

We leggen nu de tijd vast in twee verschillend opgemaakte variabelen, evenals de titel van het actieve venster. Er is echter een klein probleem: de titel van het venster kan ook ongewenste tekens bevatten. Het is mogelijk om alle niet-alfanumerieke tekens te verwijderen met behulp van AHK's ondersteuning voor RegEx, met:

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

Laten we, met dit in gedachten, AHK "vragen" om alle tekens uit de ActiveWindow-variabele te verwijderen die niet overeenkomen met wat er tussen haakjes staat:

  • Kleine letters
  • Hoofdletter
  • Nummers

Wijs vervolgens het resultaat toe aan de LogWindow-variabele.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Ruim de titel van het actieve venster op met RegEx

Nu alle variabelen zijn ingesteld en alle waardevolle gegevens zijn verzameld, bent u nu klaar om het logbestand en de inhoud ervan te formatteren.

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

Voorheen hebben we de huidige datum toegewezen aan de LogFilename-variabele. Voeg daarom voor de eerste regel "_AppLog.md" toe aan de datum om deze als bestandsnaam te gebruiken.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Stel de naam van het logbestand in

Combineer op de tweede regel de variabele LogPath , die aan het begin is gedefinieerd als de bestemming voor het logbestand, samen met de bestandsnaam. Hun combinatie is de volledige padnaam van het logbestand, toegewezen aan de variabele LogFile.

Laten we voor de goede orde de equivalente waarde van "lege regel, Tijd - Vensternaam, nog twee lege regels, een scheidingslijn en nog een lege regel" toewijzen aan de FileContent-variabele.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • De letter "n" vertelt AHK dat hij een nieuwe regel moet invoeren (gelijk aan één keer op Enter drukken ).
  • Er verschijnen drie streepjes als scheidingsteken wanneer ze worden weergegeven in een cross-down-compatibele viewer.
  • "% LogTime%" en "% LogWindow%" zijn variabelen die de naam van het actieve venster en het tijdstip waarop het werd gedetecteerd, hebben opgeslagen.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Bepaalt de inhoud van het logbestand

5. Bestanden bijwerken

U hebt gedefinieerd wat we naar het bestand willen schrijven, evenals het pad en de bestandsnaam. Het enige dat overblijft is de feitelijke, eenvoudige tekst als volgt:

FileAppend, %FileContent%, %LogFile%

Voeg alles in de variabele "FileContent" toe aan het bestand "LogFile".

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Gebruik de Append-functie van AHK om het logbestand bij te werken of een geheel nieuw bestand te maken

De functie "append" voegt "FileContent" toe aan het bestand als het bestaat, maar maakt het ook helemaal opnieuw als het bestand niet bestaat.

Er is nog een laatste aanpassing: vervang de inhoud van de LastActiveWindow- variabele door het momenteel actieve venster.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Voegt de titel van het huidige actieve venster in de LastActiveWindow-variabele in voor toekomstig testen

Om dit te doen, moet het script de volgende vensterwijziging kunnen detecteren.

LastActiveWindow = %ActiveWindow%

En met die laatste toevoeging is de Windows-logger klaar! Sla het script op en voer het uit. Controleer vervolgens het markdown-bestand. Dit bestand verschijnt na 10 seconden in de map met scriptbestanden.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Het Windows-logbestand wordt in dezelfde map gemaakt als het script

Neem de controle over je eigen tijd

U kunt het logbestand met elke teksteditor openen. Het ziet er echter beter uit als u het opent in een editor die compatibel is met markdown. In de schermafbeelding zie je het log in de populaire Typora-editor.

Hoe u een tijdregistratietoepassing op Windows kunt maken met AutoHotKey

Het door het script gegenereerde markdown-bestand wordt in Typora geladen

Het is een gemakkelijke manier om te controleren welke apps je het meest gebruikt en je hebt alleen een tool als Kladblok nodig.

Als u iets "specialers" wilt, kunt u de uitvoer van de logger altijd "stijlen" om in plaats daarvan een CSV-bestand te maken. Het is net zo eenvoudig als het aanpassen van de FileContent- variabele en de extensie van het gemaakte bestand. U kunt dergelijke bestanden vervolgens importeren in toepassingen zoals Excel, Google Calc of zelfs tijdregistratie van derden.

Compleet script

#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

Laat een reactie achter

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Hoe u de kennisgeving van een auteursrechtverzoek in de rechterhoek van het scherm op Windows 10 verwijdert

Ziet u een activeringsmelding voor Windows 10 in de rechterhoek van het scherm? In dit artikel wordt uitgelegd hoe u de kennisgeving van een auteursrechtverzoek op Windows 10 verwijdert.

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Instructies van AZ voor het installeren van Windows 10 build 14393.222

Onlangs heeft Microsoft de nieuwste cumulatieve update voor Windows 10 pc-gebruikers uitgebracht, genaamd Build 14393.222. Deze update voor Windows 10 repareert voornamelijk bugs op basis van gebruikersfeedback en verbetert de prestatie-ervaring van het besturingssysteem.

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Bescherm uw computernetwerk met Bastion host in slechts 3 stappen

Heeft u computers op uw lokale netwerk die externe toegang nodig hebben? Het gebruik van een bastionhost als poortwachter voor uw netwerk kan een goede oplossing zijn.

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

3 manieren om snel alle gebeurtenislogboeken in Windows 10 te wissen

Soms moet u oude gebeurtenislogboeken in één keer verwijderen. In deze handleiding laat Quantrimang.com u 3 manieren zien om snel alle gebeurtenislogboeken in Windows 10 Event Viewer te verwijderen.

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Hoe u een Windows-toets maakt als uw toetsenbord niet beschikbaar is

Als je liever een oud klassiek toetsenbord gebruikt, zoals het IBM Model M, dat geen fysieke Windows-sleutel bevat, kun je er eenvoudig meer toevoegen door een sleutel te lenen die je niet vaak gebruikt.

Hoe u een transparante achtergrondmodus creëert op Windows 10

Hoe u een transparante achtergrondmodus creëert op Windows 10

WindowTop is een tool waarmee u alle toepassingsvensters en programma's op computers met Windows 10 kunt dimmen. Of u kunt een donkere achtergrondinterface op Windows gebruiken.

Valse IP-methoden helpen u anoniem toegang te krijgen

Valse IP-methoden helpen u anoniem toegang te krijgen

In veel eerdere artikelen hebben we vermeld dat online anoniem blijven uiterst belangrijk is. Elk jaar lekt privé-informatie uit, waardoor online beveiliging steeds noodzakelijker wordt. Dat is ook de reden dat we virtuele IP-adressen moeten gebruiken. Hieronder zullen we leren over methoden om nep-IP's te maken!

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

Hoe u de taalbalk op de taakbalk van Windows 8 uitschakelt

De Taalbalk op Windows 8 is een miniatuurtaalwerkbalk die is ontworpen om automatisch op het bureaublad te worden weergegeven. Veel mensen willen deze taalbalk echter op de taakbalk verbergen.

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Tips om de internetverbindingssnelheid van Linksys te optimaliseren

Het maximaliseren van de internetsnelheid is essentieel voor het optimaliseren van uw netwerkverbinding. U kunt een optimale entertainment- en werkervaring hebben met behulp van computers, internet-tv's, gameconsoles, enz.

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Hoe u WEP, WPA, WPA2 instelt voor de Linksys-router

Draadloze connectiviteit is tegenwoordig een noodzaak en daarom is draadloze beveiliging essentieel om de veiligheid in uw interne netwerk te garanderen.