Svaki dan započinjete s najboljim namjerama, pomlađeni, spremni za sve svoje zadatke. Zatim, provjerite vrijeme, 03:00 ujutro, i ne možete se ne zapitati, kamo je nestalo svo vrijeme?

Možete koristiti namjensku aplikaciju za praćenje vremena, ali one mogu biti neugodno složene. Osim toga, gdje je tu zabava?

Zašto umjesto toga ne napravite vlastitu jednostavnu mini-aplikaciju koja bi mogla pratiti sve prozore na kojima ste proveli vrijeme tijekom dana? Trebat će vam samo AutoHotKey, osnovni program za obradu teksta kao što je Notepad, i oko pola sata. Zaglavimo se.

Što je AutoHotKey?

Primarna svrha AutoHotKeya je automatizacija radne površine. To je skriptni jezik s kojim možete slati pritiske tipki i pokrete miša u bilo koji aktivni prozor, kreirati prečace ili mijenjati pritiske tipki. Možete ga, na primjer, koristiti za onemogućite određene tipke na tipkovnici.

Međutim, to je kratka verzija priče i ne predstavlja istinski ono što AutoHotKey (skraćeno AHK) može učiniti. To je zato što je evoluirao od svoje početne koncepcije i sada je potpuni skriptni jezik. Možete zamisliti ono što možete učiniti s njim kao "programiranje Lite".

instagram viewer

Stoga također možete koristiti AHK za izradu mini-aplikacija, upravo poput onoga što smo postavili kao naš cilj za ovaj članak. Imajte na umu da ćemo u ovom članku zaroniti upravo u AHK, pa biste mogli provjeriti naš brzi vodič za AutoHotKey za početnike prije nego što počnete.

Izrada vlastite skripte za bilježenje prozora pomoću AutoHotKey

Prije nego počnemo, trebali biste imati instaliran AHK na vašem računalu jer će on djelovati kao "parser" za vašu skriptu. To je "motor" koji će omogućiti da se vaša skripta "pokrene".

Napomena: Također možete sastaviti svoju skriptu nakon što je gotova kako biste je pretvorili u stvarni izvršni program. Međutim, to je izvan dosega ovog članka.

Preuzmite AutoHotKey sa svoje službene stranice i instalirajte ga.

Pokrenite svoj omiljeni upravitelj datoteka i posjetite mapu u koju želite pohraniti svoju skriptu. Zatim kliknite desnom tipkom miša na prazno mjesto i odaberite Novo > AutoHotKey Script.

Nakon što je to učinjeno, vrijeme je za pisanje stvarnog scenarija.

1. Definirajte potrebne varijable

Otvorite skriptu u svom omiljenom uređivaču. Možete koristiti nešto jednostavno kao Notepad koji dolazi uz Windows, ali mi ćemo se koristiti Notepad++ za ovaj vodič. Budući da je Notepad++ besplatan i bolje prilagođen za tu svrhu, vrijedi ga isprobati. Također provjerite naš konačni vodič za sve tipkovne prečace dok to provjeravate.

Imajte na umu da ne biste trebali koristiti nijednu aplikaciju poput Worda ili Google dokumenata, što bi moglo utjecati na njeno oblikovanje. Koristite uređivač teksta ili "koda".

Skripta će već sadržavati neke osnove preporučene za kompatibilnost i performanse. Ostavite ih onakvima kakvi jesu i pokrenite svoj scenarij ispod njih.

Početi sa:

AppLoggingRate = 10; Vremenski interval (u sekundama) između aktivnih snimanja naslova prozora.
Vrijeme mirovanja := Stopa zapisivanja aplikacija * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Započinjemo dodjeljivanjem vrijednosti "10" AppLoggingRateu, koju ćemo koristiti za izračunavanje vremena između snimanja naslova prozora.

Kada se koristi s AHK-ovom funkcijom mirovanja, 1000 je otprilike jednako sekundi. Dakle, množenjem s AppLogingRate, činimo varijablu SleepTime "jednakom deset sekundi".

LogPath je put na koji želimo pohraniti naše zapisnike. Koristimo vrijednost %A_ScriptDir%, što se prevodi kao "mapa iz koje pokrećete skriptu". Ako želite, možete koristiti cijeli put do druge mape.

Konačno, LastActiveWindow postavljamo na prazno. Kasnije ćemo to koristiti da provjerimo je li se aktivni prozor promijenio.

2. Nadgledajte aktivne Windowse

Budući da želimo kontinuirano pratiti koji je prozor aktivan, i ako se promijeni, zabilježiti njegov naslov i vrijeme, morat ćemo koristiti "petlju".

Kao što mu naziv kaže, petlja se izvodi kontinuirano, ponavljajući istu(e) funkciju(e). Zahvaljujući jednostavnoj sintaksi AHK-a, vjerujemo da je sljedeći "kod" relativno sam po sebi razumljiv:

Petlja
{
Spavanje %SleepTime%
Msgbox, radi!
}

Petlju definiramo jednostavnim upisivanjem riječi "petlja", a zatim označavanjem njenog početka s "{" i kraj s "}". Sve u redovima između "{" i "}" radit će se neprestano dok ne izađete iz skripte.

Započinjemo petlju čekanjem (Sleep) za vrijeme koje je jednako varijabli SleepTime. Postavili smo je kao varijablu u prethodnom poglavlju kako bismo kontrolirali vrijeme jednostavnije. Umjesto da uređujete samu skriptu, možete joj, putem ove varijable, "kazati" koliko sekundi svaka petlja treba trajati.

Konačno, koristimo okvir za poruke za testiranje naše skripte. Pokušajte ga spremiti i pokrenuti (dvaput kliknite na njegovu datoteku). Vidjet ćete okvir s porukom "It Works!" nakon deset sekundi.

Desnom tipkom miša kliknite ikonu AHK u Windows tray i izađite iz skripte kada budete imali dovoljno okvira za poruke. Zatim se vratite u uređivač i zamijenite redak MsgBox sa:

WinGetActiveTitle, ActiveWindow

Ovo je naredba za dobivanje naslova aktivnog prozora. Zanemarite dodatni redak "StoreActiveWindow" koji smo koristili dok smo pisali skriptu za testiranje.

3. Dobijte trenutno vrijeme i naziv

Sada dolazi glavni dio logike scenarija. Želimo da usporedi naziv aktivnog prozora s prethodnim, i ako se razlikuje, "učini nešto". To je jednostavno kao sljedeće:

Ako je ActiveWindow != %LastActiveWindow%
{
}

Uz gore navedeno, provjeravamo je li trenutni ActiveWindow drugačiji (!=) od vrijednosti pohranjene u varijabli LastActiveWindow (koju smo inicijalno postavili na praznu). Ako jest, AHK će izvršiti kod između { i }, koji su za sada prazni.

Moramo pratiti i datum i vrijeme kako bismo izmjerili koliko je dugo prozor bio aktivan. Vodit ćemo različite zapise za svaki dan, koristeći datum u njihovom nazivu. I želimo zabilježiti ne samo svaku promjenu prozora nego i kada dogodilo se. Za to ćemo dodijeliti različite formate vremena varijablama LogTime i LogFilename, sa:

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

Dodajte te retke između vitičastih zagrada pod "Ako je ActiveWindow...", da bi ih AHK pokrenuo kada otkrije promjenu prozora.

4. Formatiranje podataka

Uhvatili smo vrijeme u dvije različito oblikovane varijable, kao i naslov aktivnog prozora. Međutim, postoji mali problem: naslov prozora također može sadržavati znakove koje ne želimo. Možemo ukloniti sve ne-alfanumeričke znakove koristeći AHK-ovu podršku za RegEx, uz:

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

Ovime "kažemo" AHK-u da ukloni sve znakove iz varijable ActiveWindow koji ne odgovaraju onome što je u zagradama:

  • Mala slova
  • Velika slova
  • Brojevi

Zatim rezultat dodjeljujemo varijabli LogWindow.

Sa svim varijablama postavljenim i svim vrijednim podacima zgrabimo, spremni smo za formatiranje naše datoteke dnevnika i njezinog sadržaja.

Ime datoteke dnevnika = %ime datoteke dnevnika%_AppLog.md
LogFile = %LogPath%\%LogFilename%

Prethodno smo dodijelili trenutni datum varijabli LogFilename. Dakle, u prvom retku samo navodimo da želimo dodati "_AppLog.md" datumu kako bismo ga koristili kao naziv datoteke.

U drugom retku kombiniramo varijablu LogPath, koju smo na početku definirali kao odredište za naše zapise, s imenom datoteke. Njihova kombinacija je puni naziv putanje dnevnika, dodijeljen varijabli LogFile.

Dodijelimo ekvivalent "prazan redak, vrijeme - naziv prozora, još dva prazna retka, razdjelnik i još jedan prazan redak, za dobru mjeru" varijabli FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • "`n" govore AHK-u da uđe u novi redak (ekvivalentno jednom pritisku Enter).
  • Tri crtice će se pojaviti kao razdjelnik kada se prikažu u pregledniku kompatibilnom s smanjenjem vrijednosti.
  • "%LogTime%" i "%LogWindow%" su varijable u koje smo pohranili naziv aktivnog prozora i vrijeme kada je otkriven.

5. Ažurirajte datoteku

Definirali smo što želimo upisati u našu datoteku i znamo njezin put i naziv datoteke. Sve što ostaje je stvarno pisanje, koje je jednostavno kao:

FileAppend, %FileContent%, %LogFile%

Gotovo je jednako jednostavno kao običan engleski: sve što je u varijabli "FileContent" dodajemo datoteci "LogFile".

Funkcija "append" će dodati "FileContent" u datoteku ako postoji, ali će je također stvoriti ispočetka ako ne postoji.

Ali čekajte, postoji još jedna posljednja izmjena: zamjena sadržaja varijable LastActiveWindow s trenutno aktivnim prozorom.

S ovim će skripta moći otkriti Sljedeći promjena prozora.

LastActiveWindow = %ActiveWindow%

I s tim posljednjim dodatkom, vaš prozor za bilježenje je spreman! Spremite ga i pokrenite. Zatim provjerite markdown datoteku, koja će se pojaviti u mapi vaše datoteke skripte nakon deset sekundi.

Ovladajte svojim vremenom

Svoju datoteku dnevnika možete otvoriti bilo kojim uređivačem teksta. Ipak, izgledat će ljepše ako ga otvorite u uređivaču kompatibilnom s markdownom. Na snimci zaslona možete vidjeti naš zapisnik u popularnom uređivaču Typora.

To je jednostavan način da provjerite na koje ste aplikacije potrošili najviše vremena, a za korištenje vam je potrebno samo nešto poput Notepad-a.

Ako želite nešto "više", uvijek možete "stilizirati" izlaz svog loggera za izradu CSV datoteka. To je jednostavno kao podešavanje varijable FileContent i proširenja stvorene datoteke. Tada biste mogli uvesti takve datoteke u aplikacije kao što su Excel, Google Calc ili čak trećari vremena trećih strana.

Cijeli scenarij:

#NoEnv; Preporuča se za performanse i kompatibilnost s budućim izdanjima AutoHotkey.
; #Upozoriti; Omogućite upozorenja za pomoć pri otkrivanju uobičajenih pogrešaka.
SendMode ulaz; Preporuča se za nove skripte zbog svoje vrhunske brzine i pouzdanosti.
SetWorkingDir %A_ScriptDir%; Osigurava dosljedan početni direktorij.
; Varijable
;
AppLoggingRate = 10; Vremenski interval (u sekundama) između aktivnih snimanja naslova prozora.
Vrijeme mirovanja := Stopa zapisivanja aplikacija * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Logika
;
Petlja
{
Spavanje %SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Ako je ActiveWindow != %LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, gggg-MM-dd
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
Ime datoteke dnevnika = %ime datoteke dnevnika%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
spavati 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Izlaz
10 cool AutoHotkey skripti (i kako napraviti vlastite!)

AutoHotkey vam omogućuje izradu prilagođenih Windows prečaca, makronaredbi i još mnogo toga! Evo nekoliko korisnih AutoHotkey skripti za početak.

Pročitajte dalje

UdioCvrkutE-mail
Povezane teme
  • Windows
  • Produktivnost
  • Windows
  • AutoHotkey
  • Upravljanje vremenom
  • Trikovi za produktivnost
O autoru
Odiseja Kourafalos (Objavljeno 12 članaka)

OKov pravi život počeo je oko 10 godina, kada je dobio svoje prvo računalo - Commodore 128. Od tada je topio tipke tipkajući 24 sata dnevno, 7 dana u tjednu, pokušavajući prenijeti The Word Of Tech svima koji su dovoljno zainteresirani za slušanje. Ili, bolje rečeno, čitajte.

Više od Odysseasa Kourafalosa

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu