Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Z delom začnete vsak dan zgodaj, da lahko vse rešite čez dan. Nato pogledate na uro in ura je 3 zjutraj, a vaše delo še vedno ni opravljeno. Kam je torej izginil čas?

Uporabite lahko namensko aplikacijo za sledenje časa, vendar je to lahko zapleteno in frustrirajoče. Zakaj ne bi namesto tega ustvarili svoje preproste majhne aplikacije? Ta aplikacija lahko spremlja vsa okna, ki ste jih uporabili čez dan. Potrebujete samo AutoHotKey, osnovni urejevalnik besedil, kot je Notepad, in približno pol ure. Začnimo!

Z AutoHotKey ustvarite lasten skript za beleženje Windows

Preden začnete, namestite AHK na svoj računalnik, ker bo deloval kot "razčlenjevalnik" za skript. To je orodje, ki bo vašemu skriptu omogočilo "zagon".

Opomba : skript lahko po dokončanju tudi prevedete, da ga spremenite v pravi izvedljiv program. Vendar to presega področje uporabe tega članka.

Prenesite AutoHotKey z uradnega spletnega mesta in ga namestite.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Izberite Novo > AutoHotKey Script

Zaženite svojega najljubšega upravitelja datotek in odprite mapo, v katero želite shraniti skript. Nato z desno miškino tipko kliknite prazno mesto in izberite Novo > AutoHotKey Script .

Ko je dokončano, je čas, da napišete dejanski scenarij.

1. Identificirajte potrebne spremenljivke

Odprite skript v svojem najljubšem urejevalniku. Uporabite lahko nekaj preprostega, kot je Beležnica, ki je priložena sistemu Windows, vendar bo članek za to vadnico uporabljal Notepad++  . Notepad++ je brezplačen in bolje prilagojen za ta namen, zato ga morate preizkusiti.

Upoštevajte, da ne smete uporabljati nobenih aplikacij, kot sta Word ali Google Dokumenti, ki lahko vplivajo na oblikovanje skripta. Uporabite urejevalnik besedila ali kode.

Skript bo vseboval nekaj osnovnih priporočenih informacij o združljivosti in zmogljivosti. Pustite jih takšne, kot so, in zaženite spodnji skript.

Začne se z:

AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow =

Začnite tako, da AppLoggingRate dodelite vrednost "10" , ki bo uporabljena za izračun časa med poskusi beleženja okna.

Pri uporabi s funkcijo spanja AHK je 1000 približno enako eni sekundi. Torej, če ga pomnožite z AppLogingRate , bo spremenljivka SleepTime "enaka 10 sekundam".

LogPath je pot, ki se uporablja za shranjevanje dnevnikov. Primer uporablja vrednost %A_ScriptDir% , kar pomeni "imenik, iz katerega izvajate skript". Če želite, lahko uporabite celotno pot do druge mape.

Na koncu nastavite LastActiveWindow na prazno in uporabite pozneje, da preverite, ali se je aktivno okno spremenilo.

2. Spremljajte aktivna okna

Ker želimo sproti spremljati, katero okno je aktivno in če se spremeni, zabeležiti naslov in čas, bomo morali uporabiti »zanko«.

Kot že ime pove, zanka teče neprekinjeno in ponavlja iste funkcije. Zahvaljujoč preprosti sintaksi AHK je naslednja "koda" relativno lahko razumljiva:

Loop
{
    Sleep %SleepTime%
    Msgbox, It Works!
}

Definirajte zanko tako, da preprosto vtipkate besedo "zanka" in nato njen začetek označite z "{" in končate z "}". Vse v vrsticah med "{" in "}" se bo izvajalo večno, dokler ne zaprete skripta.

Zaženite zanko tako, da počakate ( Sleep ) toliko časa, kot je spremenljivka SleepTime. Ta spremenljivka olajša nadzor časa. Namesto da sami urejate skript, mu lahko prek te spremenljivke "poveste", koliko sekund naj traja posamezna zanka.

Na koncu uporabite polje za sporočila , da preizkusite skript. Poskusite ga shraniti in zagnati (dvokliknite datoteko skripta). Videli boste okno s sporočilom "Deluje!" (skript deluje) po 10 sekundah.

Z desno miškino tipko kliknite ikono AHK v vrstici Windows in zapustite skript, ko imate dovolj oken s sporočili. Nato se vrnite v urejevalnik in zamenjajte vrstico MsgBox z:

WinGetActiveTitle, ActiveWindow

To je ukaz za pridobitev naslova aktivnega okna. Izpustite dodatno vrstico »StoreActiveWindow« , ki jo je primer uporabil med skriptiranjem za testiranje.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Pridobite naslov aktivnega okna in ga shranite v spremenljivko

3. Pridobite trenutni čas in ime

Zdaj prihaja jedro logike scenarija. Primerjajte ime aktivnega okna s prejšnjim in, če se razlikujeta, naredite nekaj. Vse je tako preprosto:

If ActiveWindow != %LastActiveWindow%
{
}

Glede na zgoraj navedeno preverite, ali se trenutno aktivno okno razlikuje ( != ) od vrednosti, shranjene v spremenljivki LastActiveWindow (ki je bila prvotno nastavljena na prazno). Če je tako, bo AHK izvedel kodo med { in } , ki je trenutno prazna.

Nastavite funkcijo za primerjavo naslova aktivnega okna in prejšnjega okna

Za merjenje časa delovanja okna je potrebno spremljati datum in čas. Za vsak dan bodo ohranjeni različni dnevniki, v imenu katerih bo uporabljen datum. Zabeležena bo ne samo vsaka sprememba, ampak tudi čas, ko se pojavi. Če želite to narediti, dodelite različne časovne oblike spremenljivkam LogTime in LogFilename z:

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

Te vrstice dodajte med zavite oklepaje v "If ActiveWindow..." , tako da jih AHK zažene, ko zazna spremembo okna.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Pridobite trenutni čas in ga dodelite v dveh spremenljivkah različnih formatov

4. Oblika podatkov

Zdaj zajamemo čas v dveh različno oblikovanih spremenljivkah, kot tudi naslov aktivnega okna. Vendar pa obstaja majhna težava: naslov okna lahko vsebuje tudi neželene znake. Z uporabo AHK-jeve podpore za RegEx je mogoče odstraniti vse nealfanumerične znake z:

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

S tem v mislih "povprašajmo" AHK, da iz spremenljivke ActiveWindow odstrani vse znake, ki se ne ujemajo s tem, kar je v oklepajih:

  • Male črke
  • Velika tiskana črka
  • Številke

Nato dodelite rezultat spremenljivki LogWindow.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Počistite naslov aktivnega okna z RegEx

Z vsemi nastavljenimi spremenljivkami in zbranimi dragocenimi podatki ste zdaj pripravljeni na formatiranje dnevniške datoteke in njene vsebine.

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

Prej smo spremenljivki LogFilename dodelili trenutni datum . Zato v prvo vrstico datumu dodajte »_AppLog.md« , da ga uporabite kot ime datoteke.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Nastavite ime datoteke dnevnika

V drugi vrstici združite spremenljivko LogPath , ki je na začetku definirana kot cilj za datoteko dnevnika, skupaj z imenom datoteke. Njihova kombinacija je polno ime poti do datoteke dnevnika, dodeljeno spremenljivki LogFile.

Spremenljivki FileContent dodelimo enakovredno vrednost "prazna vrstica, čas - ime okna, še dve prazni vrstici, ločnica in še ena prazna vrstica, za dober ukrep" .

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • Črka "n" pove AHK, naj vnese novo vrstico (enakovredno enkratnemu pritisku Enter ).
  • Trije pomišljaji bodo prikazani kot ločilo, ko so prikazani v pregledovalniku, združljivem s križcem navzdol.
  • »% LogTime%« in »% LogWindow%« sta spremenljivki, ki sta shranili ime aktivnega okna in čas, ko je bilo zaznano.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Določa vsebino dnevniške datoteke

5. Posodobite datoteke

Določili ste, kaj želimo zapisati v datoteko, ter njeno pot in ime datoteke. Vse, kar ostane, je dejansko, preprosto besedilo, kot sledi:

FileAppend, %FileContent%, %LogFile%

Pripni vse v spremenljivki "FileContent" v datoteko "LogFile".

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Uporabite funkcijo AHK Append, da posodobite datoteko dnevnika ali jo ustvarite iz nič

Funkcija "priloži" bo datoteki dodala "FileContent", če ta obstaja, vendar jo bo tudi ustvarila iz nič, če datoteka ne obstaja.

Še zadnja prilagoditev: zamenjajte vsebino spremenljivke LastActiveWindow s trenutno aktivnim oknom.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Vstavi naslov trenutnega aktivnega okna v spremenljivko LastActiveWindow za prihodnje testiranje

Če želite to narediti, mora biti skript sposoben zaznati naslednjo spremembo okna.

LastActiveWindow = %ActiveWindow%

In s tem zadnjim dodatkom je Windows Logger pripravljen! Shranite skript in ga zaženite. Nato preverite datoteko markdown, ta datoteka se bo po 10 sekundah pojavila v mapi datoteke skripta.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Dnevniška datoteka sistema Windows je ustvarjena v istem imeniku kot skript

Prevzemite odgovornost za svoj čas

Dnevniško datoteko lahko odprete s katerim koli urejevalnikom besedil. Vendar pa bo videti bolje, če ga odprete v urejevalniku, združljivem z markdownom. Na posnetku zaslona lahko vidite dnevnik v priljubljenem urejevalniku Typora.

Kako ustvariti aplikacijo za sledenje časa v sistemu Windows z AutoHotKey

Datoteka za označevanje, ki jo ustvari skript, se naloži v Typora

To je preprost način, da preverite, katere aplikacije uporabljate največ časa, za uporabo pa potrebujete samo orodje, kot je Beležnica.

Če želite nekaj "bolj posebnega", lahko vedno "prilagodite" izhod zapisovalnika, da namesto tega ustvarite datoteko CSV. To je tako preprosto kot prilagoditev spremenljivke FileContent in končnice ustvarjene datoteke. Take datoteke lahko nato uvozite v aplikacije, kot so Excel, Google Calc ali celo sledilnike časa tretjih oseb.

Celoten scenarij

#NoEnv  ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn  ; Enable warnings to assist with detecting common errors.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir%  ; Ensures a consistent starting directory.
; Variables
; ---------
AppLoggingRate = 10 ; Time interval (in seconds) between active window title captures.
SleepTime := AppLoggingRate * 1000
LogPath = %A_ScriptDir%
LastActiveWindow = 
; Logic
; -----
Loop
{
	Sleep %SleepTime%
	
	WinGetActiveTitle, ActiveWindow
	StoreActiveWindow = %ActiveWindow%
	
	If 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
		
		sleep 50
		
		FileAppend, %FileContent%, %LogFile%
		LastActiveWindow = %ActiveWindow%
	}
}
Exit

Razlika med protivirusnimi programi in programi proti zlonamerni programski opremi

Razlika med protivirusnimi programi in programi proti zlonamerni programski opremi

Orodja za odstranjevanje zlonamerne programske opreme in protivirusna programska oprema se med seboj dopolnjujejo in lahko delujejo skupaj, da zagotovijo maksimalno varnost na napravah uporabnikov.

Pregled FortiClient: brezplačni protivirusni program za več platform

Pregled FortiClient: brezplačni protivirusni program za več platform

FortiClient je brezplačen protivirusni izdelek podjetja Fortinet. Fortinet je znan po proizvodnji izdelkov strojne opreme za kibernetsko varnost. FortiClient je program za več platform, ki je na voljo za Windows, macOS, Linux, Windows Phone, iOS in Android.

Popravek Napaka Tega predmeta ni mogoče odpreti v sistemu Windows

Popravek Napaka Tega predmeta ni mogoče odpreti v sistemu Windows

Če uporabljate Windows, prejmete sporočilo o napaki Tega predmeta ni mogoče odpreti. Morda je bil premaknjen, preimenovan ali izbrisan, kaj naj storim? Za podrobnosti sledite spodnjemu članku.

Kaj je KRACK? Kako je KRACK zlomil varnostni protokol WPA2 WiFi

Kaj je KRACK? Kako je KRACK zlomil varnostni protokol WPA2 WiFi

Raziskovalec Mathy Vanhoef z univerze Leuven je odkril resno varnostno napako v omrežnem varnostnem protokolu Wi-Fi Protected Access II (WPA2).

Pogosta vprašanja o privzetih geslih

Pogosta vprašanja o privzetih geslih

V današnjem članku bo Quantrimang povzel nekaj pogosto zastavljenih vprašanj o privzetih geslih, da bi bralcem pomagal odgovoriti na vprašanja v zvezi s to težavo.

Zakaj uporabljati CyberGhost VPN?

Zakaj uporabljati CyberGhost VPN?

Kar potrebujete, je VPN - ki poenostavi različne možnosti, CyberGhost VPN pa je eden najboljših VPN-jev, ko gre za preprostost.

Trije najpomembnejši varnostni izzivi v več oblakih in kako zgraditi strategijo

Trije najpomembnejši varnostni izzivi v več oblakih in kako zgraditi strategijo

Z vzponom večoblačnih okolij so se pojavile številne najboljše varnostne prakse in obstaja nekaj pomembnih korakov, ki bi jih morale narediti vse organizacije, ko razvijajo lastne varnostne strategije.

Namestite dinamične zaslone in animirana ozadja v sistemu Windows

Namestite dinamične zaslone in animirana ozadja v sistemu Windows

V Microsoftovem operacijskem sistemu Windows Vista je DreamScene omogočal nastavitev dinamičnih ozadij za računalnike, osem let pozneje pa v sistemu Windows 10 še vedno ni na voljo. Zakaj je ta običaj skozi leta predstavljal vrnitev v preteklost in kaj lahko storimo, da to spremenimo?

Kako povezati omrežje med 2 prenosnima računalnikoma z omrežnim kablom

Kako povezati omrežje med 2 prenosnima računalnikoma z omrežnim kablom

Če želimo v omrežje povezati dva prenosnika, lahko uporabimo omrežni kabel in nato spremenimo IP naslova obeh računalnikov in to je to.

Kako popraviti Nimate dovoljenja za shranjevanje na to mesto v sistemu Windows

Kako popraviti Nimate dovoljenja za shranjevanje na to mesto v sistemu Windows

Ko Windows prikaže napako »Nimate dovoljenja za shranjevanje na tem mestu«, vam to prepreči shranjevanje datotek v želene mape.