Katru dienu tu sāc ar vislabākajiem nodomiem, atjaunojies, gatavs risināt visus savus uzdevumus. Pēc tam jūs pārbaudāt laiku, ir pulksten 03:00, un jūs nevarat vien brīnīties, kur pazudis viss laiks?

Varat izmantot īpašu laika uzskaites lietotni, taču tās var būt kaitinoši sarežģītas. Turklāt, kur tajā ir jautrība?

Kāpēc gan neizveidot savu vienkāršu mini lietotni, kas varētu izsekot visiem logiem, kuros esat pavadījis laiku dienas laikā? Jums būs nepieciešams tikai AutoHotKey, pamata tekstapstrāde, piemēram, Notepad, un apmēram pusstunda. Ieslēgsimies.

Kas ir AutoHotKey?

AutoHotKey galvenais mērķis ir darbvirsmas automatizācija. Tā ir skriptu valoda, ar kuru varat nosūtīt taustiņsitienus un peles kustības uz jebkuru aktīvo logu, izveidot karstos taustiņus vai modificēt taustiņu nospiešanas. Piemēram, varat to izmantot atspējojiet noteiktus tastatūras taustiņus.

Tomēr šī ir stāsta īsā versija, un tā īsti neatspoguļo to, ko AutoHotKey (īsumā AHK) spēj paveikt. Tas ir tāpēc, ka kopš sākotnējās koncepcijas tā ir attīstījusies, un tagad tā ir pilnīga skriptu valoda. Varat iedomāties, ko ar to var darīt, kā "programmēšanu Lite".

instagram viewer

Tādējādi varat arī izmantot AHK, lai izveidotu mini lietotnes, tieši tā, kā mēs izvirzījām mērķi šim rakstam. Ņemiet vērā, ka šajā rakstā mēs apskatīsim AHK, tāpēc, iespējams, vēlēsities to pārbaudīt mūsu ātrais AutoHotKey ceļvedis iesācējiem pirms sākat darbu.

Izveidojiet savu logu reģistrēšanas skriptu, izmantojot AutoHotKey

Pirms sākam, datorā jābūt instalētam AHK, jo tas darbosies kā jūsu skripta "parsētājs". Tas ir "dzinējs", kas ļaus jūsu skriptam "palaist".

Piezīme. Varat arī apkopot skriptu pēc tam, kad tas ir izdarīts, lai pārvērstu to par īstu izpildāmo programmu. Tomēr tas ir ārpus šī raksta darbības jomas.

Lejupielādēt AutoHotKey no tās oficiālās vietnes un instalējiet to.

Ieslēdziet savu iecienītāko failu pārvaldnieku un apmeklējiet mapi, kurā vēlaties saglabāt savu skriptu. Pēc tam ar peles labo pogu noklikšķiniet uz tukšas vietas un izvēlieties Jauns > AutoHotKey skripts.

Kad tas ir izdarīts, ir pienācis laiks rakstīt faktisko skriptu.

1. Definējiet nepieciešamos mainīgos

Atveriet skriptu savā iecienītākajā redaktorā. Varat izmantot kaut ko tik vienkāršu kā Notepad, kas nāk ar Windows, taču mēs to izmantosim Notepad++ šim ceļvedim. Tā kā Notepad++ ir bezmaksas un šim nolūkam labāk pielāgots, ir vērts to izmēģināt. Noteikti pārbaudiet arī mūsu galvenais ceļvedis par visiem tā īsinājumtaustiņiem kamēr jūs to pārbaudāt.

Ņemiet vērā, ka nevajadzētu izmantot tādas lietotnes kā Word vai Google dokumenti, jo tas var ietekmēt tās formatējumu. Izmantojiet teksta vai "koda" redaktoru.

Skriptā jau būs ietverti daži saderības un veiktspējas pamatinformācija. Atstājiet tos tādus, kādi tie ir, un sāciet skriptu zem tiem.

Sākt ar:

AppLoggingRate = 10; Laika intervāls (sekundēs) starp aktīvo loga virsrakstu uzņemšanu.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Mēs sākam, piešķirot AppLoggingRate vērtību "10", ko izmantosim, lai aprēķinātu laiku starp logu nosaukumu tveršanu.

Lietojot ar AHK miega funkciju, 1000 ir aptuveni vienāds ar sekundi. Tātad, reizinot to ar AppLogingRate, mēs padarām mainīgo SleepTime "vienādu ar desmit sekundēm".

LogPath ir ceļš, kurā mēs vēlamies saglabāt savus žurnālus. Mēs izmantojam vērtību %A_ScriptDir%, kas nozīmē "mape, no kuras palaižat skriptu". Ja vēlaties, varat izmantot pilnu ceļu uz citu mapi.

Visbeidzot, mēs iestatījām LastActiveWindow uz tukšu. Mēs to izmantosim vēlāk, lai pārbaudītu, vai aktīvais logs ir mainījies.

2. Pārraugiet aktīvo Windows

Tā kā mēs vēlamies nepārtraukti izsekot, kurš logs ir aktīvs, un, ja tas mainās, reģistrēt tā nosaukumu un laiku, mums būs jāizmanto "cilpa".

Kā norāda nosaukums, cilpa darbojas nepārtraukti, atkārtojot to pašu funkciju (-as). Pateicoties AHK vienkāršajai sintaksei, mēs uzskatām, ka šāds "kods" ir samērā pašsaprotams:

Cilpa
{
Miega režīms %SleepTime%
Msgbox, tas darbojas!
}

Mēs definējam cilpu, vienkārši ierakstot vārdu "cilpa" un pēc tam atzīmējot tās sākumu ar "{" un beigas ar "}". Viss, kas atrodas rindās starp “{” un “}”, darbosies pastāvīgi, līdz iziesit no skripta.

Mēs sākam cilpu, gaidot (miega režīms) laiku, kas vienāds ar mainīgo SleepTime. Mēs to iestatījām kā mainīgo iepriekšējā nodaļā, lai padarītu laika kontroli vienkāršāku. Tā vietā, lai rediģētu pašu skriptu, jūs varat tam "pateikt", izmantojot šo mainīgo, cik sekundes katrai cilpai vajadzētu ilgt.

Visbeidzot, mēs izmantojam ziņojumu lodziņu, lai pārbaudītu savu skriptu. Mēģiniet to saglabāt un palaist (veiciet dubultklikšķi uz tā faila). Tiks parādīts ziņojuma lodziņš ar tekstu "Tas darbojas!" pēc desmit sekundēm.

Ar peles labo pogu noklikšķiniet uz AHK ikonas Windows teknē un izejiet no skripta, kad ir bijis pietiekami daudz ziņojumu lodziņu. Pēc tam atgriezieties savā redaktorā un aizstājiet MsgBox rindiņu ar:

WinGetActiveTitle, ActiveWindow

Šī ir komanda aktīvā loga nosaukuma iegūšanai. Ignorējiet papildu "StoreActiveWindow" rindiņu, ko izmantojām, rakstot skriptu testēšanai.

3. Iegūstiet pašreizējo laiku un vārdu

Tagad nāk skripta loģikas galvenā daļa. Mēs vēlamies, lai tas salīdzinātu aktīvā loga nosaukumu ar iepriekšējo un, ja tie atšķiras, "darīt kaut ko". Tas ir tik vienkārši, kā norādīts tālāk.

Ja ActiveWindow != % LastActiveWindow%
{
}

Izmantojot iepriekš minēto, mēs pārbaudām, vai pašreizējais ActiveWindow atšķiras (!=) no vērtības, kas saglabāta mainīgajā LastActiveWindow (ko sākotnēji esam iestatījuši tukšu). Ja tā ir, AHK izpildīs kodu starp { un }, kas pagaidām ir tukši.

Mums ir jāseko līdzi gan datumam, gan laikam, lai noteiktu, cik ilgi logs ir bijis aktīvs. Mēs saglabāsim dažādus žurnālus katrai dienai, izmantojot datumu to vārdā. Un mēs vēlamies reģistrēt ne tikai katru logu maiņu, bet arī kad tas notika. Šim nolūkam mainīgajiem LogTime un LogFilename piešķirsim dažādus laika formātus ar:

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

Pievienojiet šīs līnijas starp cirtainajām iekavām sadaļā “If ActiveWindow...”, lai AHK tās palaistu, kad tā konstatē loga izmaiņas.

4. Datu formatēšana

Mēs esam uztvēruši laiku divos atšķirīgi formatētajos mainīgajos, kā arī aktīvā loga virsrakstā. Tomēr pastāv neliela problēma: loga virsrakstā var būt arī rakstzīmes, kuras mēs nevēlamies. Mēs varam noņemt visas rakstzīmes, kas nav burtciparu rakstzīmes, izmantojot AHK atbalstu RegEx, ar:

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

Ar to mēs "sakām" AHK noņemt visas ActiveWindow mainīgā rakstzīmes, kas neatbilst iekavās norādītajam:

  • Mazie burti
  • Lielie burti
  • Skaitļi

Pēc tam mēs piešķiram rezultātu mainīgajam LogWindow.

Kad visi mainīgie ir iestatīti un visi vērtīgie dati ir iegūti, mēs esam gatavi formatēt savu žurnālfailu un tā saturu.

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

Mēs iepriekš piešķīrām pašreizējo datumu mainīgajam LogFilename. Tādējādi pirmajā rindā mēs tikai norādām, ka vēlamies datumam pievienot "_AppLog.md", lai to izmantotu kā faila nosaukumu.

Otrajā rindā mēs apvienojam mainīgo LogPath, kuru sākumā definējām kā mūsu žurnālu galamērķi, ar faila nosaukumu. To kombinācija ir pilns žurnāla ceļa nosaukums, kas piešķirts mainīgajam LogFile.

Piešķirsim FileContent mainīgajam ekvivalentu "tukša rinda, laiks — loga nosaukums, vēl divas tukšas rindiņas, dalītājs un vēl viena tukša rindiņa".

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • "n" liek AHK ievadīt jaunu rindiņu (ekvivalents vienreiz nospiežot Enter).
  • Trīs domuzīmes parādīsies kā dalītājs, ja tās tiks parādītas skatītājā, kas ir saderīgs ar cenu samazināšanu.
  • "%LogTime%" un "%LogWindow%" ir mainīgie, kuros esam saglabājuši aktīvā loga nosaukumu un laiku, kad tas tika noteikts.

5. Atjauniniet failu

Mēs esam definējuši, ko vēlamies rakstīt savā failā, un zinām tā ceļu un faila nosaukumu. Atliek tikai faktiskā rakstīšana, kas ir tikpat vienkārša kā:

FileAppend, %FileContent%, %LogFile%

Tas ir gandrīz tikpat vienkārši kā angļu valodā: failam "LogFile" pievienojam visu mainīgajā "FileContent".

Funkcija "pievienot" failam pievienos "FileContent", ja tāds pastāv, bet arī izveidos to no jauna, ja tā nav.

Bet pagaidiet, ir vēl viens pēdējais kniebiens: LastActiveWindow mainīgā satura aizstāšana ar pašlaik aktīvo logu.

Tādējādi skripts varēs noteikt Nākamais logu maiņa.

LastActiveWindow = %ActiveWindow%

Un ar šo pēdējo papildinājumu jūsu logu cirtējs ir gatavs! Saglabājiet to un palaidiet to. Pēc tam pārbaudiet atzīmes failu, kas pēc desmit sekundēm parādīsies jūsu skripta faila mapē.

Apgūstiet savu laiku

Jūs varat atvērt žurnāla failu ar jebkuru teksta redaktoru. Tomēr tas izskatīsies skaistāk, ja to atvērsit ar atzīmes saderīgu redaktoru. Ekrānuzņēmumā varat redzēt mūsu žurnālu populārajā Typora redaktorā.

Tas ir vienkāršs veids, kā pārbaudīt, kuras lietotnes esat pavadījis visvairāk, un, lai to izmantotu, jums ir nepieciešams tikai kaut kas līdzīgs Notepad.

Ja vēlaties kaut ko "vairāk", vienmēr varat "stilizēt" sava reģistrētāja izvadi, lai tā vietā izveidotu CSV failus. Tas ir tikpat vienkārši kā FileContent mainīgā un izveidotā faila paplašinājuma pielāgošana. Pēc tam varat importēt šādus failus tādās lietotnēs kā Excel, Google Calc vai pat trešās puses laika izsekotājus.

Pilns skripts:

#NoEnv; Ieteicams veiktspējai un saderībai ar turpmākajiem AutoHotkey laidieniem.
; #Brīdināt; Iespējojiet brīdinājumus, lai palīdzētu noteikt izplatītas kļūdas.
SendMode ievade; Ieteicams jauniem skriptiem tā izcilā ātruma un uzticamības dēļ.
SetWorkingDir %A_ScriptDir%; Nodrošina konsekventu sākuma direktoriju.
; Mainīgie lielumi
;
AppLoggingRate = 10; Laika intervāls (sekundēs) starp aktīvo loga virsrakstu uzņemšanu.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Loģika
;
Cilpa
{
Miega režīms %SleepTime%
WinGetActiveTitle, ActiveWindow
StoreActiveWindow = %ActiveWindow%
Ja ActiveWindow != % LastActiveWindow%
{
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, gggg-MM-dd
LogWindow := Regexplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
gulēt 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Izeja
10 forši AutoHotkey skripti (un kā izveidot paši!)

AutoHotkey ļauj izveidot pielāgotus Windows īsceļus, makro un daudz ko citu! Šeit ir daži noderīgi AutoHotkey skripti, lai sāktu darbu.

Lasiet Tālāk

DalītiesČivinātE-pasts
Saistītās tēmas
  • Windows
  • Produktivitāte
  • Windows
  • AutoHotkey
  • Laika plānošana
  • Produktivitātes triki
Par autoru
Odisejs Kourafalos (12 publicēti raksti)

OK īstā dzīve sākās ap 10, kad viņš ieguva savu pirmo datoru – Commodore 128. Kopš tā laika viņš ir kausējis taustiņu vāciņus, rakstot 24/7, cenšoties izplatīt The Word Of Tech ikvienam, kurš ir pietiekami ieinteresēts, lai klausītos. Vai, pareizāk sakot, lasīt.

Vairāk no Odysseas Kourafalos

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai saņemtu tehniskos padomus, pārskatus, bezmaksas e-grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu