Alustate iga päeva parimate kavatsustega, noorenenud, valmis täitma kõiki oma ülesandeid. Seejärel vaatate kellaaega, kell on 03:00 ja te ei suuda ära imestada, kuhu on kogu aeg kadunud?

Võite kasutada spetsiaalset aja jälgimise rakendust, kuid need võivad olla tüütult keerulised. Lisaks, kus on selles lõbu?

Miks mitte luua selle asemel oma lihtne minirakendus, mis võiks jälgida kõiki aknaid, millele olete päeva jooksul aega veetnud? Teil on vaja ainult AutoHotKeyt, lihtsat tekstitöötlusprogrammi, nagu Notepad, ja umbes pool tundi. Jääme vahele.

Mis on AutoHotKey?

AutoHotKey peamine eesmärk on töölaua automatiseerimine. See on skriptikeel, mille abil saate saata klahvivajutusi ja hiireliigutusi mis tahes aktiivsesse aknasse, luua kiirklahve või muuta klahvivajutusi. Saate seda näiteks kasutada keelake klaviatuuril teatud klahvid.

See on aga loo lühike versioon ja ei esinda päriselt seda, mida AutoHotKey (lühidalt AHK) teha suudab. Selle põhjuseks on asjaolu, et see on selle esialgsest loomisest alates arenenud ja nüüd on see täielik skriptikeel. Võite mõelda, mida saate sellega teha, kui "programming Lite".

Seega saate AHK-d kasutada ka minirakenduste loomiseks, täpselt nagu oleme selle artikli jaoks eesmärgiks seadnud. Pange tähele, et selles artiklis sukeldume otse AHK-sse, seega võiksite seda kontrollida meie kiire AutoHotKey juhend algajatele enne kui alustate.

AutoHotKey abil oma akna logimise skripti loomine

Enne alustamist peaks teil olema arvutisse installitud AHK, kuna see toimib teie skripti parserina. See on "mootor", mis võimaldab teie skriptil "töötada".

Märkus. Saate oma skripti kompileerida ka pärast selle valmimist, et muuta see tegelikuks käivitatavaks programmiks. See jääb aga selle artikli reguleerimisalast välja.

Laadige alla AutoHotKey oma ametlikult saidilt ja installige see.

Käivitage oma lemmikfailihaldur ja külastage kausta, kuhu soovite oma skripti salvestada. Seejärel paremklõpsake tühjal kohal ja valige Uus > AutoHotKey skript.

Kui see on tehtud, on aeg kirjutada tegelik stsenaarium.

1. Määratlege vajalikud muutujad

Avage skript oma lemmikredaktoris. Võite kasutada midagi nii lihtsat nagu Windowsiga kaasas olev Notepad, kuid me kasutame seda Notepad++ selle juhendi jaoks. Kuna Notepad++ on tasuta ja selleks otstarbeks paremini kohandatud, tasub seda proovida. Kontrollige kindlasti ka meie ülim juhend kõigi selle klaviatuuri otseteede kohta kui te seda kontrollite.

Pange tähele, et te ei tohiks kasutada ühtegi rakendust, nagu Word või Google Docs, mis võivad selle vormindamist mõjutada. Kasutage kas teksti- või "koodi" redaktorit.

Skript sisaldab juba mõningaid ühilduvuse ja jõudluse jaoks soovitatavaid põhitõdesid. Jätke need nii nagu nad on ja alustage nende all oma skripti.

Alustage:

AppLoggingRate = 10; Ajavahemik (sekundites) aktiivse akna pealkirja jäädvustuste vahel.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Alustuseks määrame rakendusele AppLoggingRate väärtuse "10", mida kasutame akende pealkirjade hõivamise vahelise aja arvutamiseks.

Kui seda kasutatakse koos AHK unerežiimi funktsiooniga, võrdub 1000 ligikaudu sekundiga. Seega, korrutades selle AppLogingRate'iga, muudame muutuja SleepTime "võrdseks kümne sekundiga".

LogPath on tee, kuhu tahame oma logisid salvestada. Kasutame väärtust %A_ScriptDir%, mis tähendab "kausta, kust skripti käitate". Soovi korral saate kasutada teise kausta kogu teed.

Lõpuks määrasime LastActiveWindow tühjaks. Kasutame seda hiljem, et kontrollida, kas aktiivne aken on muutunud.

2. Jälgige aktiivset Windowsi

Kuna me tahame pidevalt jälgida, milline aken on aktiivne ja kui see muutub, siis logida selle pealkiri ja aeg, peame kasutama "silmust".

Nagu nimigi ütleb, jookseb tsükkel pidevalt, korrates samu funktsioone. Tänu AHK sirgjoonelisele süntaksile usume, et järgmine "kood" on suhteliselt iseenesestmõistetav:

Loop
{
Unerežiim % SleepTime%
Msgbox, see töötab!
}

Me defineerime tsükli, kirjutades lihtsalt sõna "silmus" ja seejärel märgistades selle alguse tähega "{" ja lõpu tähega "}". Kõik, mis on ridade "{" ja "}" vahel, töötab pidevalt, kuni skriptist väljute.

Alustame tsüklit oodates (unerežiim) aja, mis on võrdne muutujaga SleepTime. Seadsime selle eelmises peatükis muutujaks, et muuta aja kontrollimine lihtsamaks. Skripti enda redigeerimise asemel saate sellele muutuja kaudu "ütleda", mitu sekundit iga tsükkel peaks kestma.

Lõpuks kasutame oma skripti testimiseks sõnumikasti. Proovige see salvestada ja käivitada (topeltklõpsake selle failil). Näete sõnumikasti "See töötab!" kümne sekundi pärast.

Paremklõpsake Windowsi salves AHK ikoonil ja väljuge skriptist, kui teil on piisavalt sõnumikaste. Seejärel naaske oma redaktorisse ja asendage MsgBoxi rida järgmisega:

WinGetActiveTitle, ActiveWindow

See on käsk aktiivse akna pealkirja hankimiseks. Ignoreeri lisarida "StoreActiveWindow", mida kasutasime testimiseks skripti kirjutamisel.

3. Hankige praegune aeg ja nimi

Nüüd tuleb skripti loogika põhiosa. Soovime, et see võrdleks aktiivse akna nime eelmisega ja kui need erinevad, siis "tehke midagi". See on nii lihtne kui järgmine:

Kui ActiveWindow != %LastActiveWindow%
{
}

Ülaltooduga kontrollime, kas praegune ActiveWindow erineb (!=) muutujas LastActiveWindow salvestatud väärtusest (mille oleme algselt määranud tühjaks). Kui see on nii, käivitab AHK koodi { ja } vahel, mis praegu on tühjad.

Peame jälgima nii kuupäeva kui ka kellaaega, et mõõta, kui kaua aken on olnud aktiivne. Peame iga päeva kohta erinevaid logisid, kasutades nende nimes olevat kuupäeva. Ja me tahame logida mitte ainult iga aknamuudatuse, vaid ka millal see juhtus. Selleks määrame muutujatele LogTime ja LogFilename erinevad ajavormingud koos:

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

Lisage need read "If ActiveWindow..." all olevate sulgude vahele, et AHK käivitaks need akna muutuse tuvastamisel.

4. Andmete vormindamine

Oleme haaranud aja kahe erineva vorminguga muutuja ja ka aktiivse akna pealkirjaga. Siiski on väike probleem: akna pealkiri võib sisaldada ka märke, mida me ei soovi. Saame eemaldada kõik mittetähtnumbrilised märgid, kasutades AHK RegExi tuge koos:

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

Sellega "käsume" AHK-le eemaldada ActiveWindow muutujast kõik märgid, mis ei ühti sulgudes olevaga:

  • Väikesed tähed
  • Suurtähed
  • Numbrid

Seejärel määrame tulemuse muutujale LogWindow.

Kui kõik muutujad on seatud ja kõik väärtuslikud andmed haaratud, oleme valmis logifaili ja selle sisu vormindama.

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

Varem määrasime muutujale LogFilename praeguse kuupäeva. Seega ütleme esimese reaga lihtsalt, et tahame lisada kuupäevale "_AppLog.md", et seda failinimena kasutada.

Teisel real ühendame failinimega muutuja LogPath, mille alguses määratlesime oma logide sihtkohana. Nende kombinatsioon on logi täielik teenimi, mis on määratud muutujale LogFile.

Määrame failisisu muutujale ekvivalendi "tühi rida, aeg – akna nimi, veel kaks tühja rida, jagaja ja veel üks tühi rida".

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • "n" käske AHK-l sisestada uus rida (võrdne ühekordse sisestusklahvi vajutamisega).
  • Kolm kriipsu kuvatakse jagajana, kui need esitatakse allahindlusega ühilduvas vaatajas.
  • "%LogTime%" ja "%LogWindow%" on muutujad, kuhu oleme salvestanud aktiivse akna nime ja selle tuvastamise aja.

5. Värskendage faili

Oleme määratlenud, mida tahame oma faili kirjutada, ning teame selle teed ja failinime. Järele jääb vaid tegelik kirjutamine, mis on sama lihtne kui:

FileAppend, %FileContent%, %LogFile%

See on peaaegu sama lihtne kui tavaline inglise keel: me lisame failile "LogFile" kõik muutujas "FileContent".

Funktsioon "lisa" lisab failile "FileContent", kui see on olemas, kuid loob selle ka nullist, kui seda pole.

Kuid oota, on veel üks viimane näpunäide: LastActiveWindow muutuja sisu asendamine hetkel aktiivse aknaga.

Selle abil suudab skript tuvastada järgmiseks akna vahetus.

LastActiveWindow = %ActiveWindow%

Ja selle viimase lisaga on teie aknalogija valmis! Salvestage see ja käivitage see. Seejärel vaadake allahindlusfaili, mis kuvatakse kümne sekundi pärast teie skriptifaili kaustas.

Hallake oma aega

Logifaili saate avada mis tahes tekstiredaktoriga. Siiski näeb see ilusam välja, kui avate selle allahindlusega ühilduvas redaktoris. Ekraanipildil näete meie logi populaarses Typora redaktoris.

See on lihtne viis kontrollida, millistele rakendustele olete kõige rohkem aega kulutanud, ja selle kasutamiseks on vaja ainult midagi, näiteks Notepadi.

Kui soovite midagi "rohkemat", saate alati logija väljundit "stiilida", et selle asemel luuakse CSV-faile. See on sama lihtne kui muutuja FileContent ja loodud faili laienduse kohandamine. Seejärel saate importida sellised failid sellistesse rakendustesse nagu Excel, Google Calc või isegi kolmanda osapoole ajajälgijad.

Täielik skript:

#NoEnv; Soovitatav jõudluse ja ühilduvuse tagamiseks tulevaste AutoHotkey väljalasetega.
; #Hoiata; Lubage hoiatused, mis aitavad tuvastada levinud vigu.
SendMode sisend; Soovitatav uute skriptide jaoks selle suurepärase kiiruse ja töökindluse tõttu.
SetWorkingDir %A_ScriptDir%; Tagab ühtse alguskataloogi.
; Muutujad
;
AppLoggingRate = 10; Ajavahemik (sekundites) aktiivse akna pealkirja jäädvustuste vahel.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Loogika
;
Loop
{
Unerežiim % SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Kui ActiveWindow != %LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, yyyy-MM-dd
LogWindow := Regulaarne asendamine (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = % LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
magama 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Välju
10 lahedat AutoHotkey skripti (ja kuidas seda ise teha!)

AutoHotkey võimaldab teil teha kohandatud Windowsi otseteid, makrosid ja palju muud! Siin on mõned kasulikud AutoHotkey skriptid, mis aitavad teil alustada.

Loe edasi

JagaSäutsMeil
Seotud teemad
  • Windows
  • Tootlikkus
  • Windows
  • AutoHotkey
  • Aja planeerimine
  • Tootlikkuse trikid
Autori kohta
Odysseas Kourafalos (12 avaldatud artiklit)

OK tegelik elu algas umbes kell 10, kui ta sai oma esimese arvuti – Commodore 128. Sellest ajast peale on ta sulatanud klahviotsi, kirjutades 24/7, püüdes levitada The Word Of Techi kõigile huvilistele, et neid kuulata. Või õigemini lugeda.

Veel Odysseas Kourafalosest

Liituge meie uudiskirjaga

Liituge meie uudiskirjaga tehniliste näpunäidete, arvustuste, tasuta e-raamatute ja eksklusiivsete pakkumiste saamiseks!

Tellimiseks klõpsake siin