Începeți munca în fiecare zi devreme, astfel încât să puteți rezolva totul în timpul zilei. Apoi verifici ceasul și este 3 dimineața, dar munca ta încă nu este terminată. Deci unde s-a dus timpul?
Puteți folosi o aplicație dedicată de urmărire a timpului, dar acestea pot fi complicate și frustrante. În schimb, de ce să nu îți creezi propria aplicație simplă? Această aplicație poate urmări toate ferestrele pe care le-ați folosit în timpul zilei. Ai nevoie doar de AutoHotKey, un procesor de text de bază precum Notepad și aproximativ jumătate de oră. Să începem!
Creați-vă propriul script de înregistrare Windows cu AutoHotKey
Înainte de a începe, ar trebui să instalați AHK pe computer, deoarece va acționa ca un „parser” pentru script. Este instrumentul care va permite script-ului să „ruleze”.
Notă : De asemenea, puteți compila scriptul după finalizare pentru a-l transforma într-un program executabil real. Cu toate acestea, acest lucru depășește domeniul de aplicare al acestui articol.
Descărcați AutoHotKey de pe site-ul oficial și instalați-l.

Selectați Nou > Script AutoHotKey
Porniți managerul de fișiere preferat și accesați folderul în care doriți să stocați scriptul. Apoi, faceți clic dreapta pe o locație goală și selectați Nou > Script AutoHotKey .
Odată finalizat, este timpul să scrieți scenariul propriu-zis.
1. Identificați variabilele necesare
Deschideți scriptul în editorul dvs. preferat. Puteți folosi ceva simplu, cum ar fi Notepad, care vine cu Windows, dar articolul va folosi Notepad++ pentru acest tutorial. Notepad++ este gratuit și mai bine adaptat în acest scop, așa că ar trebui să îl încercați.
Rețineți că nu trebuie să utilizați aplicații precum Word sau Google Docs, care pot afecta formatarea scriptului. Utilizați un editor de text sau cod.
Scriptul va conține câteva informații de bază recomandate despre compatibilitate și performanță. Lăsați-le așa cum sunt și începeți scenariul de mai jos.
Incepe cu:
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
Începeți prin a atribui valoarea „10” la AppLoggingRate , care va fi folosită pentru a calcula timpul dintre încercările de înregistrare în fereastră.
Când este utilizat cu funcția Sleep a AHK, 1000 este aproximativ egal cu o secundă. Deci, înmulțind-o cu AppLogingRate , veți face ca variabila SleepTime să fie „egale cu 10 secunde”.
LogPath este calea folosită pentru a stoca jurnalele. Exemplul folosește valoarea %A_ScriptDir% , care se traduce prin „directorul de unde rulați scriptul”. Puteți utiliza calea completă către alt folder dacă doriți.
În cele din urmă, setați LastActiveWindow să se golească și utilizați mai târziu pentru a verifica dacă fereastra activă s-a schimbat.
2. Monitorizați ferestrele active
Deoarece dorim să monitorizăm continuu ce fereastră este activă și dacă se schimbă, înregistrăm titlul și ora, va trebui să folosim o „buclă”.
După cum sugerează și numele, o buclă rulează continuu, repetând aceleași funcții. Datorită sintaxei simple a lui AHK, următorul „cod” este relativ ușor de înțeles:
Loop
{
Sleep %SleepTime%
Msgbox, It Works!
}
Definiți o buclă tastând pur și simplu cuvântul „buclă” și apoi marcandu-i începutul cu „{” și se termină cu „}”. Tot ce se află în rândurile dintre „{” și „}” va rula pentru totdeauna până când ieși din script.
Începeți bucla așteptând ( Sleep ) o perioadă de timp egală cu variabila SleepTime. Această variabilă face controlul timpului mai simplu. În loc să editați singur scriptul, îi puteți „spune”, prin intermediul acestei variabile, câte secunde ar trebui să dureze fiecare buclă.
În cele din urmă, utilizați Message Box pentru a testa scriptul. Încercați să îl salvați și să îl rulați (dați dublu clic pe fișierul script). Veți vedea o casetă de mesaj care spune „Funcționează!” (scriptul funcționează) după 10 secunde.
Faceți clic dreapta pe pictograma AHK din tava Windows și ieșiți din script când aveți suficiente casete de mesaje. Apoi reveniți la editor și înlocuiți linia MsgBox cu:
WinGetActiveTitle, ActiveWindow
Aceasta este comanda pentru a obține titlul ferestrei active. Omiteți linia suplimentară „StoreActiveWindow” folosită de exemplu în timpul scripturilor pentru testare.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Obțineți titlul ferestrei active și stocați-l într-o variabilă
3. Obțineți ora și numele curente
Acum vine nucleul logicii scriptului. Comparați numele ferestrei active cu cel precedent și, dacă diferă, „fă ceva”. Totul este la fel de simplu ca acesta:
If ActiveWindow != %LastActiveWindow%
{
}
Având în vedere cele de mai sus, verificați dacă ActiveWindow curent este diferit ( != ) de valoarea stocată în variabila LastActiveWindow (care a fost setată inițial la gol). Dacă da, AHK va executa codul între { și } , care este în prezent gol.
Setați funcția pentru a compara titlul ferestrei active și al ferestrei anterioare
Este necesar să urmăriți atât data, cât și ora pentru a măsura timpul de funcționare al unei ferestre. Se vor păstra jurnalele diferite pentru fiecare zi, folosind data în numele lor. Nu numai fiecare schimbare, ci și timpul în care aceasta are loc va fi înregistrată. Pentru a face acest lucru, atribuiți diferite formate de timp variabilelor LogTime și LogFilename , cu:
FormatTime, LogTime,, HH:mm:ss
FormatTime, LogFilename,, yyyy-MMM-dd
Adăugați acele linii între acolade în „Dacă ActiveWindow...” , astfel încât AHK să le execute atunci când detectează o schimbare a ferestrei.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Obțineți ora curentă și atribuiți-o în două variabile de formate diferite
4. Formatul datelor
Acum surprindem ora în două variabile formatate diferit, precum și titlul ferestrei active. Cu toate acestea, există o mică problemă: titlul ferestrei poate conține și caractere nedorite. Este posibil să eliminați toate caracterele non-alfanumerice folosind suportul AHK pentru RegEx, cu:
LogWindow := Regexreplace(ActiveWindow, "[^a-zA-Z0-9]", " ")
Având în vedere acest lucru, să îi „cerem” lui AHK să elimine toate caracterele din variabila ActiveWindow care nu se potrivesc cu ceea ce este între paranteze:
- Litere mici
- Majusculă
- Numerele
Apoi, atribuiți rezultatul variabilei LogWindow.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Curățați titlul ferestrei active cu RegEx
Cu toate variabilele setate și cu toate datele valoroase colectate, acum sunteți gata să formatați fișierul jurnal și conținutul acestuia.
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
Anterior, am atribuit data curentă variabilei LogFilename. Prin urmare, pentru prima linie, adăugați „_AppLog.md” la dată pentru a o folosi ca nume de fișier.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Setați numele fișierului jurnal
În a doua linie, combinați variabila LogPath , definită la început ca destinație pentru fișierul jurnal împreună cu numele fișierului. Combinația lor este calea completă a fișierului jurnal, atribuită variabilei LogFile.
Să atribuim valoarea echivalentă a „liniei goale, Timp – Numele ferestrei, încă două linii goale, un divizor și o altă linie goală, pentru o măsură bună” variabilei FileContent.
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
- Litera „n” îi spune lui AHK să introducă o nouă linie (echivalent cu apăsarea Enter o dată).
- Trei liniuțe vor apărea ca un separator atunci când sunt afișate într-un vizualizator compatibil încrucișat.
- „% LogTime%” și „% LogWindow%” sunt variabile care au stocat numele ferestrei active și ora la care a fost detectată.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Determină conținutul fișierului jurnal
5. Actualizați fișierele
Ați definit ce vrem să scriem în fișier, precum și calea și numele fișierului. Tot ce rămâne este textul real, simplu, după cum urmează:
FileAppend, %FileContent%, %LogFile%
Adăugați totul din variabila „FileContent” la fișierul „LogFile”.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Utilizați funcția Adăugați AHK pentru a actualiza fișierul jurnal sau pentru a crea unul de la zero
Funcția „adăugați” va adăuga „FileContent” la fișier dacă acesta există, dar îl va crea și de la zero dacă fișierul nu există.
Există o ultimă modificare: înlocuiți conținutul variabilei LastActiveWindow cu fereastra activă în prezent.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Inserează titlul ferestrei active curente în variabila LastActiveWindow pentru teste viitoare
Pentru a face acest lucru, scriptul ar trebui să poată detecta următoarea modificare a ferestrei.
LastActiveWindow = %ActiveWindow%
Și cu această ultimă adăugare, Windows logger este gata! Salvați scriptul și rulați-l. Apoi, verificați fișierul markdown, acest fișier va apărea în folderul fișierului script după 10 secunde.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Fișierul jurnal Windows este creat în același director ca și scriptul
Preia controlul asupra timpului tău
Puteți deschide fișierul jurnal cu orice editor de text. Cu toate acestea, va arăta mai bine dacă îl deschideți într-un editor compatibil cu markdown. În captură de ecran puteți vedea jurnalul în editorul popular Typora.
![Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey Cum să creați o aplicație de urmărire a timpului pe Windows cu AutoHotKey]()
Fișierul markdown generat de script este încărcat în Typora
Este o modalitate simplă de a verifica ce aplicații ați folosit cel mai mult timp și necesită doar un instrument precum Notepad.
Dacă doriți ceva „mai special”, puteți oricând să „stilați” rezultatul loggerului pentru a crea în schimb un fișier CSV. Este la fel de ușor ca ajustarea variabilei FileContent și a extensiei fișierului creat. Apoi, puteți importa astfel de fișiere în aplicații precum Excel, Google Calc sau chiar instrumente de urmărire a timpului terță parte.
Scenariul 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