Come creare unapplicazione di monitoraggio del tempo su Windows con AutoHotKey

Come creare unapplicazione di monitoraggio del tempo su Windows con AutoHotKey

Inizi il tuo lavoro ogni giorno presto in modo da poter risolvere tutto durante il giorno. Poi controlli l'orologio e sono le 3 del mattino ma il tuo lavoro non è ancora finito. Allora dov'è finito il tempo?

Puoi utilizzare un'app dedicata per il monitoraggio del tempo, ma può essere complicata e frustrante. Invece, perché non creare la tua piccola e semplice app? Questa applicazione può tenere traccia di tutte le finestre che hai utilizzato durante il giorno. Hai solo bisogno di AutoHotKey, un elaboratore di testi di base come Blocco note e circa mezz'ora. Iniziamo!

Crea il tuo script di registrazione di Windows con AutoHotKey

Prima di iniziare, dovresti installare AHK sul tuo computer perché fungerà da "parser" per lo script. È lo strumento che consentirà al tuo script di "eseguire".

Nota : è anche possibile compilare lo script dopo averlo completato per trasformarlo in un vero programma eseguibile. Tuttavia, ciò va oltre lo scopo di questo articolo.

Scarica AutoHotKey dal sito Web ufficiale e installalo.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Seleziona Nuovo > Script AutoHotKey

Avvia il tuo file manager preferito e accedi alla cartella in cui desideri archiviare lo script. Quindi, fai clic con il pulsante destro del mouse su una posizione vuota e seleziona Nuovo > AutoHotKey Script .

Una volta completato, è il momento di scrivere la sceneggiatura vera e propria.

1. Identificare le variabili necessarie

Apri lo script nel tuo editor preferito. Puoi utilizzare qualcosa di semplice come Blocco note fornito con Windows, ma l'articolo utilizzerà Notepad++  per questo tutorial. Notepad++ è gratuito e più adatto a questo scopo, quindi dovresti provarlo.

Tieni presente che non dovresti utilizzare applicazioni come Word o Google Docs, che potrebbero influire sulla formattazione dello script. Utilizza un editor di testo o di codice.

Lo script conterrà alcune informazioni di base consigliate sulla compatibilità e sulle prestazioni. Lasciali così come sono e avvia lo script seguente.

Inizia con:

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

Inizia assegnando il valore "10" a AppLoggingRate , che verrà utilizzato per calcolare il tempo tra i tentativi di registrazione della finestra.

Se utilizzato con la funzione Sleep di AHK, 1000 equivale all'incirca a un secondo. Quindi moltiplicandolo per AppLogingRate renderai la variabile SleepTime "pari a 10 secondi".

LogPath è il percorso utilizzato per archiviare i log. L'esempio utilizza il valore %A_ScriptDir% , che si traduce in "la directory da cui esegui lo script". Se lo desideri, puoi utilizzare il percorso completo di un'altra cartella.

Infine, imposta LastActiveWindow su vuoto e utilizzalo in seguito per verificare se la finestra attiva è cambiata.

2. Monitorare le finestre attive

Dato che vogliamo monitorare continuamente quale finestra è attiva e se cambia, registrare titolo e ora, dovremo utilizzare un “loop”.

Come suggerisce il nome, un ciclo viene eseguito continuamente, ripetendo le stesse funzioni. Grazie alla semplice sintassi di AHK, il seguente "codice" è relativamente facile da capire:

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

Definisci un loop semplicemente digitando la parola "loop" e contrassegnandone l'inizio con "{" e la fine con "}". Tutto nelle righe tra "{" e "}" verrà eseguito per sempre finché non esci dallo script.

Avvia il ciclo aspettando ( Sleep ) per un periodo di tempo pari alla variabile SleepTime. Questa variabile semplifica il controllo del tempo. Invece di modificare tu stesso lo script, puoi "dirgli", tramite questa variabile, quanti secondi dovrebbe durare ogni ciclo.

Infine, utilizza Message Box per testare lo script. Prova a salvarlo ed eseguirlo (fai doppio clic sul file di script). Vedrai una finestra di messaggio che dice "Funziona!" (script funzionante) dopo 10 secondi.

Fai clic con il pulsante destro del mouse sull'icona di AHK nella barra delle applicazioni di Windows ed esci dallo script quando hai abbastanza finestre di messaggio. Quindi torna all'editor e sostituisci la riga MsgBox con:

WinGetActiveTitle, ActiveWindow

Questo è il comando per ottenere il titolo della finestra attiva. Omettere la riga aggiuntiva "StoreActiveWindow" utilizzata nell'esempio durante lo scripting per il test.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Ottieni il titolo della finestra attiva e memorizzalo in una variabile

3. Ottieni l'ora e il nome attuali

Ora arriva il nocciolo della logica dello script. Confronta il nome della finestra attiva con quello precedente e, se differiscono, "fai qualcosa". Tutto è così semplice:

If ActiveWindow != %LastActiveWindow%
{
}

Considerato quanto sopra, controlla se l' ActiveWindow corrente è diverso ( != ) dal valore memorizzato nella variabile LastActiveWindow (che inizialmente era impostata su vuota). In tal caso, AHK eseguirà il codice tra { e } , che attualmente è vuoto.

Imposta la funzione per confrontare il titolo della finestra attiva e della finestra precedente

È necessario tenere traccia sia della data che dell'ora per misurare il tempo di attività di una finestra. Verranno conservati registri diversi per ogni giorno, utilizzando la data nel nome. Verrà registrato non solo ogni cambiamento, ma anche il momento in cui si verifica. Per fare ciò, assegna formati temporali diversi alle variabili LogTime e LogFilename , con:

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

Aggiungi quelle linee tra le parentesi graffe in "If ActiveWindow..." , in modo che AHK le esegua quando rileva un cambio di finestra.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Ottieni l'ora corrente e assegnala in due variabili di formati diversi

4. Formato dei dati

Ora catturiamo l'ora in due variabili formattate diversamente, così come il titolo della finestra attiva. C'è però un piccolo problema: il titolo della finestra può contenere anche caratteri indesiderati. È possibile rimuovere tutti i caratteri non alfanumerici utilizzando il supporto di AHK per RegEx, con:

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

Con questo in mente, "chiediamo" ad AHK di rimuovere tutti i caratteri dalla variabile ActiveWindow che non corrispondono a ciò che è tra parentesi:

  • Minuscolo
  • Lettera maiuscola
  • Numeri

Quindi, assegna il risultato alla variabile LogWindow.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Pulisci il titolo della finestra attiva con RegEx

Con tutte le variabili impostate e tutti i dati preziosi raccolti, ora sei pronto per formattare il file di registro e il suo contenuto.

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

In precedenza, abbiamo assegnato la data corrente alla variabile LogFilename. Pertanto, per la prima riga, aggiungi "_AppLog.md" alla data per utilizzarlo come nome del file.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Imposta il nome del file di registro

Nella seconda riga, combina la variabile LogPath , definita all'inizio come destinazione per il file di registro, insieme al nome del file. La loro combinazione è il percorso completo del file di registro, assegnato alla variabile LogFile.

Assegniamo il valore equivalente di "riga vuota, Tempo - Nome della finestra, altre due righe vuote, un divisore e un'altra riga vuota, per buona misura" alla variabile FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • La lettera "n" indica ad AHK di inserire una nuova riga (equivalente a premere Invio una volta).
  • Tre trattini appariranno come separatore quando visualizzati in un visualizzatore compatibile con il cross-down.
  • "% LogTime%" e "% LogWindow%" sono variabili che memorizzano il nome della finestra attiva e l'ora in cui è stata rilevata.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Determina il contenuto del file di registro

5. Aggiorna i file

Hai definito cosa vogliamo scrivere nel file, così come il suo percorso e il nome del file. Tutto ciò che rimane è il testo reale e semplice come segue:

FileAppend, %FileContent%, %LogFile%

Aggiungi tutto nella variabile "FileContent" al file "LogFile".

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Utilizza la funzione Aggiungi di AHK per aggiornare il file di registro o crearne uno da zero

La funzione "append" aggiungerà "FileContent" al file se esiste, ma lo creerà anche da zero se il file non esiste.

C'è un'ultima modifica: sostituire il contenuto della variabile LastActiveWindow con la finestra attualmente attiva.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Inserisce il titolo della finestra attiva corrente nella variabile LastActiveWindow per test futuri

Per fare ciò, lo script dovrebbe essere in grado di rilevare il successivo cambio di finestra.

LastActiveWindow = %ActiveWindow%

E con quest'ultima aggiunta, il registratore di Windows è pronto! Salva lo script ed eseguilo. Quindi, controlla il file markdown, questo file apparirà nella cartella dei file script dopo 10 secondi.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Il file di registro di Windows viene creato nella stessa directory dello script

Prendi il controllo del tuo tempo

È possibile aprire il file di registro con qualsiasi editor di testo. Tuttavia, avrà un aspetto migliore se lo apri in un editor compatibile con Markdown. Nello screenshot puoi vedere il registro nel popolare editor Typora.

Come creare un'applicazione di monitoraggio del tempo su Windows con AutoHotKey

Il file markdown generato dallo script viene caricato in Typora

È un modo semplice per verificare quali app hai utilizzato più tempo e richiede solo uno strumento come Blocco note per essere utilizzato.

Se desideri qualcosa di "più speciale", puoi sempre "modellare" l'output del logger per creare invece un file CSV. È facile come regolare la variabile FileContent e l'estensione del file creato. Puoi quindi importare tali file in applicazioni come Excel, Google Calc o anche tracker temporali di terze parti.

Sceneggiatura completa

#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

Come e perché dovresti disabilitare le reti Wi-Fi a 2,4 GHz?

Come e perché dovresti disabilitare le reti Wi-Fi a 2,4 GHz?

Dovresti considerare di disattivare la vecchia banda da 2,4 GHz sulla tua rete Wi-Fi domestica e di utilizzare la nuova banda da 5 GHz, più veloce e meno "affollata". Scopriamolo attraverso il seguente articolo.

Come abilitare la funzionalità sandbox su Windows Defender

Come abilitare la funzionalità sandbox su Windows Defender

Il motore antivirus integrato di Microsoft Windows Defender è diventato il primo software antivirus in grado di funzionare in un ambiente sandbox.

Cosè il ransomware Screen Locker? Come rimuovere?

Cosè il ransomware Screen Locker? Come rimuovere?

Screen Locker Ransomware è un tipo di ransomware che prende il controllo dello schermo e ti impedisce di utilizzare il tuo dispositivo. Questo tipo di ransomware è in aumento e può essere molto difficile da rimuovere senza informazioni sufficienti al riguardo.

6 motivi per cui la velocità del dongle WiFi è lenta e le prestazioni sono scarse

6 motivi per cui la velocità del dongle WiFi è lenta e le prestazioni sono scarse

Quando utilizzi un dongle WiFi, potresti riscontrare alcuni problemi, in particolare velocità wireless scadenti che non soddisfano ciò di cui hai bisogno sugli altri dispositivi della tua casa. Ecco alcuni motivi per cui gli adattatori WiFi USB sono lenti e cosa puoi fare per risolverli.

Perché dobbiamo formattare lUSB? Come formattare lUSB?

Perché dobbiamo formattare lUSB? Come formattare lUSB?

Formattare un'unità USB è quasi come formattare qualsiasi altra unità. Puoi utilizzare le impostazioni predefinite o scoprire cosa significano le diverse opzioni e utilizzare quelle che funzionano meglio per te. Il seguente articolo ti aiuterà a scegliere le impostazioni ottimali durante la formattazione dell'USB.

Scarica una serie di sfondi in stile pittura storica per il tuo computer

Scarica una serie di sfondi in stile pittura storica per il tuo computer

Continuando con la categoria di condivisione di bellissimi sfondi per computer e telefoni, oggi LuckyTemplates vorrebbe inviare ai lettori una serie di sfondi in stile dipinto con temi antichi. Per favore guarda e scarica se vuoi.

Come configurare la rete ospite per il router

Come configurare la rete ospite per il router

L'accesso ospite sul router è inteso come rete ospite, completamente separata dal sistema di rete wireless personale.

Come attivare Windows Copilot utilizzando ViveTool

Come attivare Windows Copilot utilizzando ViveTool

Windows Copilot è l'agente AI di Microsoft in Windows 11, progettato per aiutarti a essere produttivo e portare a termine il lavoro più velocemente.

Le console di gioco sono infette da virus?

Le console di gioco sono infette da virus?

Le moderne console di gioco dispongono di servizi online utilizzati dagli utenti. Tecnicamente, qualsiasi cosa online può essere vittima di un virus. Quindi le console di gioco sono infette da virus?

Come aprire il file host su Windows

Come aprire il file host su Windows

Il file Host su un computer Windows memorizzerà le informazioni sul server e sul nome di dominio a cui punta. Possiamo modificare il file host per bloccare l'accesso al sito web o l'accesso a Facebook,... Allora come aprire il file host sul computer?