Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

S prácou začínate každý deň skôr, aby ste všetko stihli vyriešiť počas dňa. Potom skontrolujete hodiny a sú 3 hodiny ráno, ale vaša práca stále nie je dokončená. Kam sa teda podel čas?

Môžete použiť vyhradenú aplikáciu na sledovanie času, ale to môže byť komplikované a frustrujúce. Prečo si namiesto toho nevytvoriť vlastnú jednoduchú malú aplikáciu? Táto aplikácia dokáže sledovať všetky okná, ktoré ste počas dňa použili. Potrebujete iba AutoHotKey, základný textový procesor, ako je Poznámkový blok, a približne pol hodinu. Začnime!

Vytvorte si vlastný skript protokolovania systému Windows pomocou funkcie AutoHotKey

Pred spustením by ste si mali do počítača nainštalovať AHK, pretože bude fungovať ako „analyzátor“ skriptu. Je to nástroj, ktorý umožní vášmu skriptu „bežať“.

Poznámka : Skript môžete po dokončení skompilovať a premeniť ho na skutočný spustiteľný program. To je však nad rámec tohto článku.

Stiahnite si AutoHotKey z oficiálnych stránok a nainštalujte ho.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Vyberte položku Nové > AutoHotKey Script

Spustite svojho obľúbeného správcu súborov a prejdite do priečinka, do ktorého chcete skript uložiť. Potom kliknite pravým tlačidlom myši na prázdne miesto a vyberte Nové > AutoHotKey Script .

Po dokončení je čas napísať skutočný scenár.

1. Identifikujte potrebné premenné

Otvorte skript vo svojom obľúbenom editore. Môžete použiť niečo jednoduché, ako je Poznámkový blok, ktorý sa dodáva so systémom Windows, ale v tomto článku sa použije program Poznámkový blok ++  . Notepad++ je zadarmo a na tento účel je lepšie prispôsobený, takže by ste ho mali vyskúšať.

Upozorňujeme, že by ste nemali používať žiadne aplikácie, ako napríklad Word alebo Dokumenty Google, ktoré môžu ovplyvniť formátovanie skriptu. Použite textový editor alebo editor kódu.

Skript bude obsahovať niekoľko základných odporúčaných informácií o kompatibilite a výkone. Nechajte ich tak, ako sú, a spustite skript nižšie.

Začína s:

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

Začnite priradením hodnoty „10“ AppLoggingRate , ktorá sa použije na výpočet času medzi pokusmi o protokolovanie okna.

Pri použití s ​​funkciou spánku AHK sa 1000 rovná približne jednej sekunde. Takže vynásobením AppLogingRate získate premennú SleepTime „rovnajúcu sa 10 sekundám“.

LogPath je cesta používaná na ukladanie protokolov. Príklad používa hodnotu %A_ScriptDir% , čo znamená „adresár, z ktorého spúšťate skript“. Ak chcete, môžete použiť úplnú cestu k inému priečinku.

Nakoniec nastavte LastActiveWindow na prázdne a použite neskôr na kontrolu, či sa aktívne okno zmenilo.

2. Monitorujte aktívne okná

Keďže chceme priebežne sledovať, ktoré okno je aktívne a ak sa zmení, zaznamenať názov a čas, budeme musieť použiť „slučku“.

Ako už názov napovedá, slučka beží nepretržite a opakuje rovnakú funkciu (funkcie). Vďaka jednoduchej syntaxi AHK je nasledujúci „kód“ relatívne ľahko pochopiteľný:

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

Definujte slučku jednoduchým napísaním slova "loop" a následným označením jej začiatku znakom "{" a končiacim znakom "}". Všetko v riadkoch medzi "{" a "}" bude bežať navždy, kým neukončíte skript.

Spustite cyklus čakaním ( Sleep ) po dobu rovnajúcu sa premennej SleepTime. Táto premenná uľahčuje riadenie času. Namiesto toho, aby ste skript sami upravovali, môžete mu prostredníctvom tejto premennej „povedať“, koľko sekúnd má každá slučka trvať.

Nakoniec použite Message Box na testovanie skriptu. Skúste ho uložiť a spustiť (dvakrát kliknite na súbor skriptu). Zobrazí sa okno so správou „Funguje to!“ (skript funguje) po 10 sekundách.

Kliknite pravým tlačidlom myši na ikonu AHK na paneli Windows a ukončite skript, keď budete mať dostatok okien so správami. Potom sa vráťte do editora a nahraďte riadok MsgBox :

WinGetActiveTitle, ActiveWindow

Toto je príkaz na získanie názvu aktívneho okna. Vynechajte ďalší riadok „StoreActiveWindow“ , ktorý príklad použil pri skriptovaní na testovanie.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Získajte názov aktívneho okna a uložte ho do premennej

3. Získajte aktuálny čas a meno

Teraz prichádza jadro logiky skriptu. Porovnajte názov aktívneho okna s predchádzajúcim a ak sa líšia, „urobte niečo“. Všetko je také jednoduché:

If ActiveWindow != %LastActiveWindow%
{
}

Vzhľadom na vyššie uvedené skontrolujte, či sa aktuálne okno ActiveWindow líši ( != ) od hodnoty uloženej v premennej LastActiveWindow (ktorá bola pôvodne nastavená ako prázdna). Ak áno, AHK spustí kód medzi { a } , ktorý je momentálne prázdny.

Nastavte funkciu na porovnanie názvu aktívneho okna a predchádzajúceho okna

Na meranie doby prevádzky okna je potrebné sledovať dátum aj čas. Rôzne denníky pre každý deň s použitím dátumu v ich názve budú zachované. Zaznamená sa nielen každá zmena, ale aj čas, kedy k nej dôjde. Ak to chcete urobiť, priraďte premenným LogTime a LogFilename rôzne časové formáty s:

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

Pridajte tieto riadky medzi zložené zátvorky v "If ActiveWindow..." , aby ich AHK spustilo, keď zistí zmenu okna.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Získajte aktuálny čas a priraďte ho do dvoch premenných rôznych formátov

4. Formát údajov

Teraz zachytávame čas v dvoch rozdielne formátovaných premenných, ako aj názov aktívneho okna. Je tu však malý problém: Názov okna môže obsahovať aj nežiaduce znaky. Pomocou podpory RegEx od AHK je možné odstrániť všetky nealfanumerické znaky pomocou:

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

S týmto vedomím „požiadajme“ AHK o odstránenie všetkých znakov z premennej ActiveWindow, ktoré sa nezhodujú s tým, čo je v zátvorkách:

  • Malými písmenami
  • Veľké písmeno
  • čísla

Potom priraďte výsledok k premennej LogWindow.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Vyčistite názov aktívneho okna pomocou RegEx

So všetkými nastavenými premennými a zhromaždenými cennými údajmi ste teraz pripravení naformátovať súbor denníka a jeho obsah.

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

Predtým sme aktuálny dátum priradili premennej LogFilename. Preto v prvom riadku pridajte k dátumu „_AppLog.md“ , aby ste ho použili ako názov súboru.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Nastavte názov súboru denníka

V druhom riadku skombinujte premennú LogPath , ktorá bola na začiatku definovaná ako cieľ pre súbor denníka spolu s názvom súboru. Ich kombináciou je úplná cesta k súboru denníka priradená k premennej LogFile.

Premennej FileContent priraďme ekvivalentnú hodnotu „prázdny riadok, čas – názov okna, ďalšie dva prázdne riadky, oddeľovač a ďalší prázdny riadok“ .

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • Písmeno "n" hovorí AHK, aby vložilo nový riadok (ekvivalent jednorazového stlačenia klávesu Enter ).
  • Pri zobrazení v kompatibilnom prehliadači sa zobrazia tri pomlčky ako oddeľovač.
  • "% LogTime%" a "% LogWindow%" sú premenné, v ktorých je uložený názov aktívneho okna a čas jeho zistenia.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Určuje obsah súboru denníka

5. Aktualizujte súbory

Definovali ste, čo chceme do súboru zapísať, ako aj jeho cestu a názov súboru. Zostáva len skutočný, jednoduchý text takto:

FileAppend, %FileContent%, %LogFile%

Pridajte všetko v premennej "FileContent" do súboru "LogFile".

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Na aktualizáciu súboru denníka alebo vytvorenie nového súboru použite funkciu Append od AHK

Funkcia „append“ pridá „FileContent“ k súboru, ak existuje, ale tiež ho vytvorí od začiatku, ak súbor neexistuje.

Je tu jedno posledné vylepšenie: nahraďte obsah premennej LastActiveWindow aktuálne aktívnym oknom.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Vloží názov aktuálneho aktívneho okna do premennej LastActiveWindow pre budúce testovanie

Na to by mal byť skript schopný zistiť ďalšiu zmenu okna.

LastActiveWindow = %ActiveWindow%

A s týmto posledným prírastkom je záznamník systému Windows pripravený! Uložte skript a spustite ho. Potom skontrolujte súbor markdown, tento súbor sa po 10 sekundách objaví v priečinku súboru skriptu.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Súbor denníka systému Windows sa vytvorí v rovnakom adresári ako skript

Postarajte sa o svoj čas

Súbor denníka môžete otvoriť pomocou ľubovoľného textového editora. Lepšie však bude vyzerať, ak ho otvoríte v editore kompatibilnom s markdown. Na snímke obrazovky môžete vidieť denník v populárnom editore Typora.

Ako vytvoriť aplikáciu na sledovanie času v systéme Windows pomocou funkcie AutoHotKey

Súbor markdown vygenerovaný skriptom sa načíta v Typore

Je to jednoduchý spôsob, ako skontrolovať, ktoré aplikácie používate najviac času, a na použitie potrebujete iba nástroj, ako je Poznámkový blok.

Ak chcete niečo „špeciálnejšie“, vždy môžete „naštýlovať“ výstup loggera tak, aby namiesto toho vytvoril súbor CSV. Je to také jednoduché, ako upraviť premennú FileContent a príponu vytvoreného súboru. Takéto súbory potom môžete importovať do aplikácií, ako sú Excel, Google Calc alebo dokonca nástroje na sledovanie času tretích strán.

Kompletný skript

#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

Nastavte router Linksys so statickou IP adresou

Nastavte router Linksys so statickou IP adresou

Statická adresa IP je pevná adresa IP nakonfigurovaná v nastaveniach počítača alebo smerovača. Niektorí poskytovatelia internetových služieb (ISP) vyžadujú, aby ste na svojom počítači zadali statickú IP adresu alebo nastavenia TCP/IP smerovača, aby sa mohli pripojiť na internet.

Ako odstrániť prehliadač únosca PublicBoardSearch

Ako odstrániť prehliadač únosca PublicBoardSearch

Podľa spôsobu infekcie patrí PublicBoardSearch do kategórie únoscov prehliadača. Ide o typ malvéru, ktorý je navrhnutý tak, aby prevzal nastavenia známeho prehliadača.

Zbierka tapiet Apex Legends s vysokým rozlíšením pre počítače

Zbierka tapiet Apex Legends s vysokým rozlíšením pre počítače

Zbierka tapiet s vysokým rozlíšením pre používateľov počítačov a notebookov s plným rozlíšením od Full HD po 4K.

Čo je Localhost? Ako sa Localhost líši od 127.0.0.1?

Čo je Localhost? Ako sa Localhost líši od 127.0.0.1?

Unixový systém, tiež známy ako „loopback“, môže posielať a prijímať sieťovú komunikáciu cez virtuálne sieťové zariadenie. Počítač môže posielať správy sám sebe, čo umožňuje komunikáciu bez aktívnej siete.

5 dôvodov, prečo je v poriadku používať bezplatný antivírusový softvér

5 dôvodov, prečo je v poriadku používať bezplatný antivírusový softvér

Pravdepodobne ste už počuli príslovie, že dostanete to, za čo zaplatíte, ale čo keď príde na antivírusový softvér? Mali by ste si radšej kúpiť softvérové ​​balíky, než sa rozhodnúť pre bezplatné riešenia ochrany? Možno to tak nie je a tu je dôvod!

Aký je rozdiel medzi antivírusovým softvérom pre Windows a Mac?

Aký je rozdiel medzi antivírusovým softvérom pre Windows a Mac?

V dnešnom článku Quantrimang zhrnie populárne značky antivírusového softvéru na trhu a zistí, ako sa líšia medzi Windows PC a macOS.

4 veci, ktoré chcú používatelia vidieť vo Windowse v roku 2021

4 veci, ktoré chcú používatelia vidieť vo Windowse v roku 2021

Nie je jasné, čo prinesie Sun Valley okrem zmien a vylepšení používateľského rozhrania najvyššej úrovne. Tu je teda to, čo používatelia dúfajú, že uvidia od veľkej aktualizácie systému Windows 10 Sun Valley, ktorá bude uvedená na trh budúci rok.

Ako opraviť chybu Spustiť ako správca nefunguje v systéme Windows

Ako opraviť chybu Spustiť ako správca nefunguje v systéme Windows

Systém Windows poskytuje možnosť Spustiť ako správca, ktorá používateľom umožňuje spúšťať aplikácie a programy s oprávneniami správcu. Môžete ho použiť aj na riešenie problémov s počítačom. Čo ak však táto funkcia zlyhá a odoberie vám práva správcu?

Ako opraviť chyby na disku v systéme Windows

Ako opraviť chyby na disku v systéme Windows

Chyby súvisiace s jednotkou vášho počítača môžu zabrániť správnemu spusteniu systému a obmedziť prístup k vašim súborom a aplikáciám.

Modular Malware – Nová metóda tajného útoku na ukradnutie údajov

Modular Malware – Nová metóda tajného útoku na ukradnutie údajov

Niektoré varianty malvéru môžu používať rôzne moduly na zmenu spôsobu, akým ovplyvňujú cieľový systém. Čo je teda modulárny malvér a ako funguje?