Vsak dan začnete z najboljšimi nameni, pomlajeni, pripravljeni se lotiti vseh svojih nalog. Nato preveriš uro, ura je 03:00, in si ne moreš kaj, da se ne bi vprašal, kam je izginil ves čas?
Lahko uporabite namensko aplikacijo za spremljanje časa, vendar so te lahko nadležno zapletene. Poleg tega, kje je zabava v tem?
Zakaj ne bi namesto tega naredili lastne preproste mini aplikacije, ki bi lahko spremljala vsa okna, za katera ste preživeli čas čez dan? Potrebovali boste samo AutoHotKey, osnovni urejevalnik besedil, kot je Notepad, in približno pol ure. Zataknimo se noter.
Kaj je AutoHotKey?
Glavni namen AutoHotKey je avtomatizacija namizja. To je skriptni jezik, s katerim lahko pošiljate pritiske tipk in premike miške v katero koli aktivno okno, ustvarjate bližnjice ali spreminjate pritiske tipk. Uporabite ga lahko npr onemogočite določene tipke na tipkovnici.
Vendar je to kratka različica zgodbe in ni v resnici reprezentativna za to, kaj lahko stori AutoHotKey (na kratko AHK). To je zato, ker se je razvil od svoje prvotne zasnove in je zdaj popoln skriptni jezik. Kaj lahko storite z njim, si lahko predstavljate "programiranje Lite".
Tako lahko AHK uporabite tudi za ustvarjanje mini-aplikacij, natanko takih, kot smo si zastavili za cilj tega članka. Upoštevajte, da se bomo v tem članku poglobili neposredno v AHK, zato boste morda želeli preveriti naš hitri vodnik AutoHotKey za začetnike preden začnete.
Ustvarjanje lastnega skripta za beleženje oken z AutoHotKey
Preden začnemo, bi morali imeti v računalniku nameščen AHK, saj bo deloval kot "razčlenjevalnik" za vaš skript. To je "motor", ki bo omogočil, da se vaš skript "zažene".
Opomba: Po končanem skriptu lahko tudi prevedete svoj skript, da ga spremenite v dejanski izvedljiv program. Vendar je to izven obsega tega članka.
Prenesite AutoHotKey z njegove uradne strani in ga namestite.
Zaženite svoj najljubši upravitelj datotek in obiščite mapo, kamor želite shraniti svoj skript. Nato z desno miškino tipko kliknite na prazno mesto in izberite Novo > Skript AutoHotKey.
Ko je to storjeno, je čas, da napišete dejanski scenarij.
1. Določite potrebne spremenljivke
Odprite skript v svojem najljubšem urejevalniku. Uporabite lahko nekaj tako preprostega, kot je Beležnica, ki je priložena operacijskemu sistemu Windows, vendar bomo uporabili Notepad++ za ta vodnik. Ker je Notepad++ brezplačen in za ta namen bolje prilagojen, ga je vredno preizkusiti. Preverite tudi naš končni vodnik za vse bližnjice na tipkovnici medtem ko ga preverjaš.
Upoštevajte, da ne smete uporabljati nobene aplikacije, kot sta Word ali Google Dokumenti, kar bi lahko vplivalo na njeno oblikovanje. Uporabite urejevalnik besedila ali "kode".
Skript bo že vseboval nekaj osnov, priporočenih za združljivost in zmogljivost. Pustite jih takšne, kot so, in začnite svoj skript pod njimi.
Začeti z:
AppLoggingRate = 10; Časovni interval (v sekundah) med zajemom naslova aktivnega okna.
Čas mirovanja := Stopnja beleženja aplikacij * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
Začnemo z dodelitvijo vrednosti "10" AppLoggingRate, ki jo bomo uporabili za izračun časa med zajemanjem naslovov oken.
Če se uporablja s funkcijo spanja AHK, je 1000 približno enako sekundi. Torej, če ga pomnožimo z AppLogingRate, naredimo spremenljivko SleepTime "enako desetim sekundam".
LogPath je pot, kamor želimo shraniti naše dnevnike. Uporabljamo vrednost %A_ScriptDir%, ki se prevaja kot "mapa, iz katere zaženete skript". Če želite, lahko uporabite celotno pot do druge mape.
Končno smo LastActiveWindow nastavili na prazno. To bomo kasneje uporabili za preverjanje, ali se je aktivno okno spremenilo.
2. Spremljajte aktivna okna
Ker želimo nenehno spremljati, katero okno je aktivno, in če se spremeni, zabeležiti njegov naslov in čas, bomo morali uporabiti "zanko".
Kot pove že ime, zanka teče neprekinjeno in ponavlja isto funkcijo(-e). Zahvaljujoč preprosti sintaksi AHK verjamemo, da je naslednja "koda" relativno samoumevna:
Zanka
{
Spanje %SleepTime%
Msgbox, deluje!
}
Zanko definiramo tako, da preprosto vtipkamo besedo "zanka" in nato označimo njen začetek z "{" in konec z "}". Vse v vrsticah med "{" in "}" se bo izvajalo nenehno, dokler ne zapustite skripta.
Zanko začnemo s čakanjem (Sleep) toliko časa, kot je spremenljivka SleepTime. V prejšnjem poglavju smo jo nastavili kot spremenljivko, da bo nadzor časa bolj enostaven. Namesto da urejate sam skript, mu lahko s to spremenljivko "povete", koliko sekund naj traja vsaka zanka.
Končno uporabimo Message Box za testiranje našega skripta. Poskusite ga shraniti in zagnati (dvokliknite njegovo datoteko). Videli boste okno s sporočilom "Deluje!" po desetih sekundah.
Z desno tipko miške kliknite ikono AHK v pladnju Windows in zaprite skript, ko imate dovolj sporočilnih polj. Nato se vrnite v urejevalnik in zamenjajte vrstico MsgBox z:
WinGetActiveTitle, ActiveWindow
To je ukaz za pridobitev naslova aktivnega okna. Ignorirajte dodatno vrstico "StoreActiveWindow", ki smo jo uporabili pri pisanju skripta za testiranje.
3. Pridobite trenutni čas in ime
Zdaj prihaja osrednji del logike scenarija. Želimo, da primerja ime aktivnega okna s prejšnjim in če se razlikujeta, "naredite nekaj". To je tako preprosto kot naslednje:
Če ActiveWindow != %LastActiveWindow%
{
}
Z zgornjim preverimo, ali je trenutno ActiveWindow drugačen (!=) od vrednosti, shranjene v spremenljivki LastActiveWindow (ki smo jo sprva nastavili na prazno). Če je, bo AHK izvršil kodo med { in }, ki sta za zdaj prazni.
Spremljati moramo tako datum kot čas, da izmerimo, kako dolgo je bilo okno aktivno. Za vsak dan bomo vodili različne dnevnike z uporabo datuma v njihovem imenu. In želimo zabeležiti ne samo vsako spremembo okna, ampak tudi kdaj to se je zgodilo. Za to bomo spremenljivkama LogTime in LogFilename dodelili različne časovne formate z:
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, llll-MMM-dd
Dodajte te vrstice med zavite oklepaje pod "Če ActiveWindow...", da jih AHK zažene, ko zazna spremembo okna.
4. Oblikovanje podatkov
Čas smo zgrabili v dveh različno oblikovanih spremenljivkah, kot tudi v naslovu aktivnega okna. Vendar pa obstaja majhna težava: naslov okna lahko vsebuje tudi znake, ki jih ne želimo. Vse nealfanumerične znake lahko odstranimo s podporo AHK za RegEx z:
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
S tem "povemo" AHK, da odstrani vse znake iz spremenljivke ActiveWindow, ki se ne ujemajo s tem, kar je v oklepajih:
- Male črke
- Velike črke
- Številke
Nato rezultat dodelimo spremenljivki LogWindow.
Ko so vse spremenljivke nastavljene in zbrani vsi dragoceni podatki, smo pripravljeni formatirati našo datoteko dnevnika in njeno vsebino.
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
Predhodno smo spremenljivki LogFilename dodelili trenutni datum. Tako s prvo vrstico samo navajamo, da želimo datumu dodati "_AppLog.md", da ga uporabimo kot ime datoteke.
V drugi vrstici združimo spremenljivko LogPath, ki smo jo na začetku definirali kot cilj za naše dnevnike, z imenom datoteke. Njihova kombinacija je polna pot dnevnika, dodeljena spremenljivki LogFile.
Spremenljivki FileContent dodelimo enakovredno "prazna vrstica, čas - ime okna, še dve prazni vrstici, delilnik in še ena prazna vrstica za dobro mero".
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
- "`n" pove AHK, da vnese novo vrstico (enakovredno enkratnemu pritisku Enter).
- Tri črtice bodo prikazane kot delilnik, ko so predstavljene v pregledovalniku, ki je združljiv z znižanjem vrednosti.
- "%LogTime%" in "%LogWindow%" sta spremenljivki, kamor smo shranili ime aktivnega okna in čas, ko je bilo zaznano.
5. Posodobite datoteko
Določili smo, kaj želimo zapisati v našo datoteko, in poznamo njeno pot in ime datoteke. Vse, kar ostane, je dejansko pisanje, ki je tako enostavno kot:
FileAppend, %FileContent%, %LogFile%
To je skoraj tako preprosto kot navadna angleščina: vse v spremenljivki "FileContent" dodamo datoteki "LogFile".
Funkcija "priloži" bo dodala "FileContent" v datoteko, če obstaja, vendar jo bo ustvarila tudi iz nič, če ne.
Toda počakajte, obstaja še zadnja popravka: zamenjava vsebine spremenljivke LastActiveWindow s trenutno aktivnim oknom.
S tem bo skript lahko zaznal Naslednji menjava okna.
LastActiveWindow = %ActiveWindow%
In s tem zadnjim dodatkom je vaš zapisovalnik oken pripravljen! Shranite in zaženite. Nato si oglejte datoteko markdown, ki se bo po desetih sekundah pojavila v mapi vaše skriptne datoteke.
Obvladajte svoj čas
Dnevniško datoteko lahko odprete s katerim koli urejevalnikom besedil. Kljub temu bo videti lepše, če ga odprete v urejevalniku, ki je združljiv z markdownom. Na posnetku zaslona si lahko ogledate naš dnevnik v priljubljenem urejevalniku Typora.
To je preprost način, da preverite, katere aplikacije ste porabili največ časa, za uporabo pa potrebujete le nekaj, kot je Beležnica.
Če želite nekaj "več", lahko vedno "stilizirate" izhod zapisovalnika tako, da namesto tega ustvari datoteke CSV. To je tako enostavno kot prilagajanje spremenljivke FileContent in ustvarjene pripone datoteke. Takšne datoteke lahko nato uvozite v aplikacije, kot so Excel, Google Calc ali celo časovni sledilci drugih proizvajalcev.
Celoten scenarij:
#NoEnv; Priporočeno za zmogljivost in združljivost s prihodnjimi izdajami AutoHotkey.
; #Opozori; Omogočite opozorila za pomoč pri odkrivanju pogostih napak.
SendMode vhod; Priporočljivo za nove skripte zaradi odlične hitrosti in zanesljivosti.
SetWorkingDir %A_ScriptDir%; Zagotavlja konsistenten začetni imenik.
; spremenljivke
;
AppLoggingRate = 10; Časovni interval (v sekundah) med zajemom naslova aktivnega okna.
Čas mirovanja := Stopnja beleženja aplikacij * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Logika
;
Zanka
{
Spanje %SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Če ActiveWindow != %LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, llll-MM-dd
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
spi 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Izhod
AutoHotkey vam omogoča, da ustvarite bližnjice Windows, makre in še več! Tukaj je nekaj uporabnih skriptov AutoHotkey za začetek.
Preberite Naprej
- Windows
- Produktivnost
- Windows
- AutoHotkey
- Upravljanje časa
- Triki za produktivnost
Pravo življenje OK se je začelo pri okoli 10. letu, ko je dobil svoj prvi računalnik - Commodore 128. Od takrat je topil tipke s tipkanjem 24 ur na dan, 7 dni v tednu in poskušal The Word Of Tech posredovati vsem, ki jih zanima dovolj, da jih poslušajo. Ali bolje rečeno, preberite.
Naročite se na naše novice
Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e-knjige in ekskluzivne ponudbe!
Kliknite tukaj, da se naročite