Kiekvieną dieną pradedate turėdami geriausių ketinimų, atsinaujinę, pasiruošę atlikti visas savo užduotis. Tada patikrini laiką, 03:00 ryto, ir negali atsistebėti, kur dingo visas laikas?
Galite naudoti specialią laiko stebėjimo programą, tačiau tai gali būti erzinančiai sudėtinga. Be to, kur tame smagumas?
Kodėl gi nesukūrus savo paprastos mini programėlės, kuri galėtų stebėti visus langus, kuriuose praleidote laiką per dieną? Jums reikės tik „AutoHotKey“, pagrindinės tekstų rengyklės, tokios kaip „Notepad“, ir maždaug pusvalandžio. Įklimpkime.
Kas yra „AutoHotKey“?
Pagrindinis „AutoHotKey“ tikslas yra darbalaukio automatizavimas. Tai scenarijų kalba, su kuria galite siųsti klavišų paspaudimus ir pelės judesius į bet kurį aktyvų langą, kurti sparčiuosius klavišus arba keisti klavišų paspaudimus. Pavyzdžiui, galite jį naudoti išjungti tam tikrus klaviatūros klavišus.
Tačiau tai yra trumpa istorijos versija ir nelabai atspindi tai, ką gali padaryti „AutoHotKey“ (trumpai – AHK). Taip yra todėl, kad ji vystėsi nuo pat pradžių ir dabar yra pilna scenarijų kalba. Galite galvoti apie tai, ką galite padaryti su juo, kaip „programuoti Lite“.
Taip pat galite naudoti AHK kurdami mini programas, būtent tokias, kaip mes nustatėme šio straipsnio tikslą. Atminkite, kad šiame straipsnyje mes pasinersime tiesiai į AHK, todėl galbūt norėsite patikrinti mūsų greitas „AutoHotKey“ vadovas pradedantiesiems prieš pradėdami.
Sukurkite savo langų registravimo scenarijų naudodami „AutoHotKey“.
Prieš pradėdami, turite turėti savo kompiuteryje įdiegtą AHK, nes jis veiks kaip jūsų scenarijaus „analizatorius“. Tai „variklis“, kuris leis jūsų scenarijui „paleisti“.
Pastaba: taip pat galite sukompiliuoti scenarijų, kai jis bus atliktas, kad paverstumėte jį tikra vykdomąja programa. Tačiau tai nepatenka į šio straipsnio taikymo sritį.
Atsisiųskite „AutoHotKey“. iš savo oficialios svetainės ir įdiekite jį.
Įjunkite mėgstamą failų tvarkyklę ir apsilankykite aplanke, kuriame norite išsaugoti scenarijų. Tada dešiniuoju pelės mygtuku spustelėkite tuščią vietą ir pasirinkite Nauja > AutoHotKey Script.
Kai tai bus padaryta, laikas parašyti tikrąjį scenarijų.
1. Apibrėžkite būtinus kintamuosius
Atidarykite scenarijų savo mėgstamoje rengyklėje. Galite naudoti tokį paprastą dalyką kaip Notepad, kuris pateikiamas su Windows, bet mes naudosime Notepad++ šiam vadovui. Kadangi Notepad++ yra nemokama ir geriau pritaikyta šiam tikslui, verta ją išbandyti. Taip pat būtinai patikrinkite mūsų pagrindinis visų jo sparčiųjų klavišų vadovas kol tikrinate.
Atminkite, kad neturėtumėte naudoti jokių programų, pvz., „Word“ ar „Google“ dokumentų, nes tai gali turėti įtakos jos formatavimui. Naudokite teksto arba „kodo“ redaktorių.
Scenarijuje jau bus keletas pagrindinių suderinamumo ir našumo rekomendacijų. Palikite juos tokius, kokie jie yra, ir pradėkite savo scenarijų po jais.
Pradėti nuo:
AppLoggingRate = 10; Laiko intervalas (sekundėmis) tarp aktyvaus lango pavadinimo užfiksavimo.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
Pirmiausia „AppLoggingRate“ priskirsime reikšmę „10“, kurią naudosime skaičiuodami laiką tarp langų pavadinimų užfiksavimo.
Kai naudojamas su AHK miego funkcija, 1000 yra maždaug lygus sekundei. Taigi, padauginę jį iš AppLogingRate, kintamąjį SleepTime padarome „lygų dešimčiai sekundžių“.
LogPath yra kelias, kuriame norime saugoti savo žurnalus. Mes naudojame reikšmę %A_ScriptDir%, kuri verčiama kaip „aplankas, iš kurio paleidžiate scenarijų“. Jei norite, galite naudoti visą kelią į kitą aplanką.
Galiausiai „LastActiveWindow“ nustatėme tuščią. Naudosime tai vėliau norėdami patikrinti, ar aktyvus langas nepasikeitė.
2. Stebėkite aktyvią „Windows“.
Kadangi norime nuolat sekti, kuris langas yra aktyvus, o jam pasikeitus – registruoti jo pavadinimą ir laiką, teks naudoti „ciklą“.
Kaip nurodo pavadinimas, ciklas veikia nuolat, kartodamas tą pačią funkciją (-as). Dėl paprastos AHK sintaksės manome, kad šis „kodas“ yra gana savaime suprantamas:
Kilpa
{
Miego režimas %SleepTime%
Msgbox, tai veikia!
}
Ciklą apibrėžiame tiesiog įvesdami žodį "kilpa" ir pažymėdami jo pradžią "{", o pabaigą - "}". Viskas, kas yra eilutėse tarp „{“ ir „}“, veiks nuolat, kol išeisite iš scenarijaus.
Ciklą pradedame laukdami (miego režimas) tiek laiko, kiek prilygsta kintamajam SleepTime. Ankstesniame skyriuje nustatėme jį kaip kintamąjį, kad būtų lengviau valdyti laiką. Užuot redaguodami patį scenarijų, per šį kintamąjį galite jam „pasakyti“, kiek sekundžių turėtų trukti kiekviena kilpa.
Galiausiai scenarijui išbandyti naudojame pranešimų laukelį. Pabandykite jį išsaugoti ir paleisti (dukart spustelėkite failą). Pamatysite pranešimo laukelį su užrašu „Tai veikia! po dešimties sekundžių.
Dešiniuoju pelės mygtuku spustelėkite AHK piktogramą „Windows“ dėkle ir išeikite iš scenarijaus, kai turėsite pakankamai pranešimų laukelių. Tada grįžkite į redaktorių ir pakeiskite eilutę MsgBox į:
„WinGetActiveTitle“, „ActiveWindow“.
Tai komanda, skirta gauti aktyvaus lango pavadinimą. Ignoruokite papildomą eilutę „StoreActiveWindow“, kurią naudojome rašydami scenarijų testavimui.
3. Gaukite dabartinį laiką ir vardą
Dabar ateina pagrindinė scenarijaus logikos dalis. Norime, kad jis palygintų aktyvaus lango pavadinimą su ankstesniu, o jei jie skiriasi, „padaryk ką nors“. Tai taip paprasta, kaip nurodyta toliau.
Jei ActiveWindow != %LastActiveWindow%
{
}
Atsižvelgdami į tai, kas išdėstyta pirmiau, patikriname, ar šiuo metu esantis ActiveWindow skiriasi (!=) nuo reikšmės, saugomos kintamajame LastActiveWindow (kurią iš pradžių nustatėme tuščią). Jei taip, AHK vykdys kodą tarp { ir }, kurie kol kas yra tušti.
Turime sekti datą ir laiką, kad pamatuotume, kiek laiko langas buvo aktyvus. Kiekvienai dienai laikysime skirtingus žurnalus, naudodami datą jų pavadinime. Ir mes norime registruoti ne tik kiekvieną lango keitimą, bet ir kada tai atsitiko. Tam kintamiesiems LogTime ir LogFilename priskirsime skirtingus laiko formatus su:
FormatTime, LogTime,, HH: mm: ss
FormatTime, LogFilename,, yyyy-MMM-dd
Pridėkite šias eilutes tarp garbanotų skliaustų skiltyje „If ActiveWindow...“, kad AHK jas paleistų, kai aptiks lango pasikeitimą.
4. Duomenų formatavimas
Mes sugriebėme laiką iš dviejų skirtingai suformatuotų kintamųjų, taip pat aktyvaus lango pavadinimo. Tačiau yra nedidelė problema: lango pavadinime taip pat gali būti simbolių, kurių mes nenorime. Naudodami AHK palaikymą RegEx galime pašalinti visus ne raidinius ir skaitinius simbolius su:
LogWindow := Regexreplace (ActiveWindow, "[^a-zA-Z0-9]", " ")
Tokiu būdu mes „pasakome“ AHK pašalinti visus simbolius iš ActiveWindow kintamojo, kurie neatitinka to, kas yra skliausteliuose:
- Mažosios raidės
- Didžiosios raidės
- Skaičiai
Tada priskiriame rezultatą kintamajam LogWindow.
Nustatyti visi kintamieji ir surinkti visi vertingi duomenys, esame pasirengę formatuoti žurnalo failą ir jo turinį.
LogFilename = %LogFilename%_AppLog.md
LogFile = %LogPath%\%LogFilename%
Anksčiau kintamajam LogFilename priskyrėme dabartinę datą. Taigi, pirmoje eilutėje mes tik nurodome, kad norime pridėti „_AppLog.md“ prie datos, kad naudotume ją kaip failo pavadinimą.
Antroje eilutėje sujungiame kintamąjį LogPath, kurį pradžioje apibrėžėme kaip savo žurnalų paskirties vietą, su failo pavadinimu. Jų derinys yra visas žurnalo kelio pavadinimas, priskirtas kintamajam LogFile.
Priskirkime „FileContent“ kintamajam atitikmenį „tuščia eilutė, laikas – lango pavadinimas, dar dvi tuščios eilutės, skirstytuvas ir dar viena tuščia eilutė“.
FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
- „n“ nurodo AHK įvesti naują eilutę (atitinka vieną kartą paspaudus Enter).
- Trys brūkšniai bus rodomi kaip skirstytuvas, kai bus pateikti su žymėjimo suderinamoje peržiūros priemonėje.
- „%LogTime%“ ir „%LogWindow%“ yra kintamieji, kuriuose išsaugojome aktyvaus lango pavadinimą ir jo aptikimo laiką.
5. Atnaujinkite failą
Apibrėžėme, ką norime įrašyti į savo failą, ir žinome jo kelią bei failo pavadinimą. Lieka tik rašyti, kuri yra taip paprasta:
FileAppend, %FileContent%, %LogFile%
Tai beveik taip pat paprasta, kaip ir paprasta anglų kalba: viską, kas yra „FileContent“ kintamajame, pridedame prie failo „LogFile“.
Funkcija „Pridėti“ prie failo pridės „FileContent“, jei jis egzistuoja, bet taip pat sukurs jį nuo nulio, jei jo nėra.
Tačiau palaukite, yra paskutinis pakeitimas: LastActiveWindow kintamojo turinio pakeitimas šiuo metu aktyviu langu.
Tokiu būdu scenarijus galės aptikti Kitas langų keitimas.
LastActiveWindow = %ActiveWindow%
Ir su paskutiniu papildymu jūsų langų žurnalas yra paruoštas! Išsaugokite jį ir paleiskite. Tada patikrinkite žymėjimo failą, kuris po dešimties sekundžių pasirodys scenarijaus failo aplanke.
Valdykite savo laiką
Žurnalo failą galite atidaryti naudodami bet kurį teksto rengyklę. Vis dėlto jis atrodys gražiau, jei atidarysite jį su žymėjimo suderinamame redaktoriuje. Ekrano kopijoje galite pamatyti mūsų žurnalą populiariame „Typora“ redaktoriuje.
Tai paprastas būdas patikrinti, kurioms programoms praleidote daugiausiai laiko, o norint ja naudotis tereikia kažko, pavyzdžiui, Notepad.
Jei norite kažko „daugiau“, visada galite „stiiliuoti“ registratoriaus išvestį, kad vietoj jos būtų sukurti CSV failai. Tai taip paprasta, kaip pakoreguoti „FileContent“ kintamąjį ir sukurto failo plėtinį. Tada galėtumėte importuoti tokius failus į programas, pvz., „Excel“, „Google Calc“ ar net trečiųjų šalių laiko stebėjimo priemones.
Visas scenarijus:
#NoEnv; Rekomenduojama dėl našumo ir suderinamumo su būsimais AutoHotkey leidimais.
; #Įspėti; Įgalinkite įspėjimus, kad padėtų aptikti įprastas klaidas.
SendMode įvestis; Rekomenduojamas naujiems scenarijams dėl didelio greičio ir patikimumo.
SetWorkingDir %A_ScriptDir%; Užtikrina nuoseklų pradžios katalogą.
; Kintamieji
;
AppLoggingRate = 10; Laiko intervalas (sekundėmis) tarp aktyvaus lango pavadinimo užfiksavimo.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =
; Logika
;
Kilpa
{
Miego režimas %SleepTime%
„WinGetActiveTitle“, „ActiveWindow“.
StoreActiveWindow = %ActiveWindow%
Jei 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
miegoti 50
FileAppend, %FileContent%, %LogFile%
LastActiveWindow = %ActiveWindow%
}
}
Išeiti
„AutoHotkey“ leidžia kurti pasirinktinius „Windows“ sparčiuosius klavišus, makrokomandas ir dar daugiau! Štai keletas naudingų „AutoHotkey“ scenarijų, kad galėtumėte pradėti.
Skaitykite toliau
- Windows
- Produktyvumas
- Windows
- AutoHotkey
- Laiko planavimas
- Produktyvumo gudrybės
Tikrasis OK gyvenimas prasidėjo maždaug 10 metų, kai jis gavo pirmąjį kompiuterį – Commodore 128. Nuo tada jis tirpdo klavišų dangtelius rašydamas 24 valandas per parą, 7 dienas per savaitę, bandydamas paskleisti „The Word Of Tech“ visiems, kurie pakankamai domisi, kad galėtų klausytis. Arba, tiksliau, skaitykite.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. knygų ir išskirtinių pasiūlymų!
Norėdami užsiprenumeruoti, spustelėkite čia