Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Każdego dnia zaczynasz pracę wcześniej, aby móc rozwiązać wszystko w ciągu dnia. Następnie sprawdzasz zegar i jest 3 w nocy, ale Twoja praca wciąż nie jest skończona. Gdzie więc podział się czas?

Możesz użyć dedykowanej aplikacji do śledzenia czasu, ale może to być skomplikowane i frustrujące. Zamiast tego dlaczego nie stworzyć własnej, prostej aplikacji? Ta aplikacja może śledzić wszystkie okna, z których korzystałeś w ciągu dnia. Potrzebujesz tylko AutoHotKey, podstawowego edytora tekstu, takiego jak Notatnik, i około pół godziny. Zacznijmy!

Utwórz własny skrypt rejestrowania systemu Windows za pomocą AutoHotKey

Przed rozpoczęciem warto zainstalować na swoim komputerze AHK, gdyż będzie on pełnił rolę „parsera” dla skryptu. Jest to narzędzie, które pozwoli na „uruchomienie” Twojego skryptu.

Uwaga : Możesz także skompilować skrypt po jego ukończeniu, aby przekształcić go w prawdziwy program wykonywalny. Jednak wykracza to poza zakres tego artykułu.

Pobierz AutoHotKey z oficjalnej strony internetowej i zainstaluj go.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Wybierz opcję Nowy > Skrypt AutoHotKey

Uruchom swój ulubiony menedżer plików i uzyskaj dostęp do folderu, w którym chcesz zapisać skrypt. Następnie kliknij prawym przyciskiem myszy pustą lokalizację i wybierz Nowy > AutoHotKey Script .

Po zakończeniu nadszedł czas na napisanie właściwego scenariusza.

1. Zidentyfikuj niezbędne zmienne

Otwórz skrypt w swoim ulubionym edytorze. Możesz użyć czegoś prostego, takiego jak Notatnik dostarczany z systemem Windows, ale w tym artykule w tym samouczku zostanie użyty Notepad ++  . Notepad++ jest darmowy i lepiej przystosowany do tego celu, dlatego warto go wypróbować.

Pamiętaj, że nie powinieneś używać żadnych aplikacji typu Word czy Google Docs, gdyż mogą one mieć wpływ na formatowanie skryptu. Użyj edytora tekstu lub kodu.

Skrypt będzie zawierał podstawowe zalecane informacje na temat kompatybilności i wydajności. Zostaw je bez zmian i rozpocznij poniższy skrypt.

Zaczynać z:

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

Zacznij od przypisania wartości „10” do AppLoggingRate , która będzie używana do obliczania czasu pomiędzy próbami logowania okna.

W przypadku użycia z funkcją uśpienia AHK wartość 1000 odpowiada w przybliżeniu jednej sekundzie. Zatem mnożąc ją przez AppLogingRate , zmienna SleepTime będzie „równa 10 sekundom”.

LogPath to ścieżka używana do przechowywania dzienników. W przykładzie użyto wartości %A_ScriptDir% , co oznacza „katalog, z którego uruchamiany jest skrypt”. Jeśli chcesz, możesz użyć pełnej ścieżki do innego folderu.

Na koniec ustaw LastActiveWindow na pusty i użyj później, aby sprawdzić, czy aktywne okno się zmieniło.

2. Monitoruj aktywne okna

Ponieważ chcemy na bieżąco monitorować, które okno jest aktywne, a jeśli się zmieni, zapisać tytuł i czas, będziemy musieli zastosować „pętlę”.

Jak sama nazwa wskazuje, pętla działa w sposób ciągły, powtarzając te same funkcje. Dzięki prostej składni AHK następujący „kod” jest stosunkowo łatwy do zrozumienia:

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

Zdefiniuj pętlę, po prostu wpisując słowo „pętla”, a następnie zaznaczając jej początek „{” i koniec „}”. Wszystko w wierszach pomiędzy „{” i „}” będzie działać wiecznie, dopóki nie wyjdziesz ze skryptu.

Rozpocznij pętlę, czekając ( Sleep ) przez czas równy zmiennej SleepTime. Ta zmienna ułatwia kontrolę czasu. Zamiast samodzielnie edytować skrypt, możesz za pomocą tej zmiennej „powiedzieć” mu, ile sekund powinna trwać każda pętla.

Na koniec użyj Message Box , aby przetestować skrypt. Spróbuj zapisać i uruchomić go (kliknij dwukrotnie plik skryptu). Zobaczysz okno komunikatu „To działa!” (skrypt działa) po 10 sekundach.

Kliknij prawym przyciskiem myszy ikonę AHK na pasku zadań systemu Windows i zamknij skrypt, gdy pojawi się wystarczająca liczba okien komunikatów. Następnie wróć do edytora i zamień linię MsgBox na:

WinGetActiveTitle, ActiveWindow

To jest polecenie umożliwiające uzyskanie tytułu aktywnego okna. Pomiń dodatkową linię „StoreActiveWindow” , której użyto w przykładzie podczas pisania skryptów do testowania.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Pobierz tytuł aktywnego okna i zapisz go w zmiennej

3. Uzyskaj aktualny czas i nazwę

Teraz następuje rdzeń logiki skryptu. Porównaj nazwę aktywnego okna z poprzednią i jeśli się różnią, „zrób coś”. Wszystko jest tak proste, jak to:

If ActiveWindow != %LastActiveWindow%
{
}

Biorąc pod uwagę powyższe, sprawdź, czy bieżące ActiveWindow różni się ( != ) od wartości zapisanej w zmiennej LastActiveWindow (która początkowo była ustawiona na pustą). Jeśli tak, AHK wykona kod pomiędzy { i } , który jest obecnie pusty.

Ustaw funkcję porównującą tytuł aktywnego okna z tytułem poprzedniego okna

Aby zmierzyć czas pracy okna, konieczne jest śledzenie zarówno daty, jak i godziny. Zachowane zostaną różne logi dla każdego dnia, zawierające datę w nazwie. Rejestrowana będzie nie tylko każda zmiana, ale także czas jej wystąpienia. Aby to zrobić, przypisz różne formaty czasu do zmiennych LogTime i LogFilename , za pomocą:

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

Dodaj te linie między nawiasami klamrowymi w „If ActiveWindow…” , aby AHK uruchomił je po wykryciu zmiany okna.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Uzyskaj aktualny czas i przypisz go w dwóch zmiennych o różnych formatach

4. Format danych

Teraz przechwytujemy czas w dwóch różnie sformatowanych zmiennych, a także tytuł aktywnego okna. Jest jednak mały problem: tytuł okna może również zawierać niepożądane znaki. Możliwe jest usunięcie wszystkich znaków innych niż alfanumeryczne, korzystając z obsługi AHK dla RegEx, za pomocą:

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

Mając to na uwadze, „poprośmy” AHK o usunięcie wszystkich znaków ze zmiennej ActiveWindow, które nie pasują do znaków w nawiasach:

  • Małe litery
  • Wielka litera
  • Liczby

Następnie przypisz wynik do zmiennej LogWindow.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Wyczyść tytuł aktywnego okna za pomocą RegEx

Po ustawieniu wszystkich zmiennych i zebraniu wszystkich cennych danych można teraz sformatować plik dziennika i jego zawartość.

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

Poprzednio przypisywaliśmy bieżącą datę do zmiennej LogFilename. Dlatego w pierwszym wierszu dodaj do daty „_AppLog.md” , aby użyć jej jako nazwy pliku.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Ustaw nazwę pliku dziennika

W drugiej linii połącz zmienną LogPath zdefiniowaną na początku jako miejsce docelowe pliku logu z nazwą pliku. Ich kombinacja to pełna ścieżka pliku dziennika, przypisana do zmiennej LogFile.

Przypiszmy równoważną wartość „pustej linii, Czas - Nazwa okna, dwóch kolejnych pustych linii, dzielnika i jeszcze jednej pustej linii, na wszelki wypadek” do zmiennej FileContent.

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • Litera „n” nakazuje AHK wprowadzenie nowej linii (co jest równoznaczne z jednokrotnym naciśnięciem klawisza Enter ).
  • Podczas wyświetlania w przeglądarce obsługującej format krzyżowy w dół jako separator pojawią się trzy myślniki.
  • „% LogTime%” i „% LogWindow%” to zmienne przechowujące nazwę aktywnego okna i godzinę jego wykrycia.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Określa zawartość pliku dziennika

5. Zaktualizuj pliki

Zdefiniowałeś co chcemy zapisać do pliku, jego ścieżkę i nazwę pliku. Pozostaje tylko faktyczny, prosty tekst w następujący sposób:

FileAppend, %FileContent%, %LogFile%

Dołącz wszystko ze zmiennej „FileContent” do pliku „LogFile”.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Użyj funkcji Dołącz AHK, aby zaktualizować plik dziennika lub utwórz go od zera

Funkcja „append” doda „FileContent” do pliku, jeśli istnieje, ale także utworzy go od zera, jeśli plik nie istnieje.

Jest jeszcze jedno ostatnie ulepszenie: zastąp zawartość zmiennej LastActiveWindow aktualnie aktywnym oknem.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Wstawia tytuł bieżącego aktywnego okna do zmiennej LastActiveWindow na potrzeby przyszłych testów

Aby to zrobić, skrypt powinien być w stanie wykryć następną zmianę okna.

LastActiveWindow = %ActiveWindow%

Po tym ostatnim dodatku rejestrator systemu Windows jest gotowy! Zapisz skrypt i uruchom go. Następnie sprawdź plik przeceny, plik ten pojawi się w folderze plików skryptu po 10 sekundach.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Plik dziennika systemu Windows jest tworzony w tym samym katalogu, co skrypt

Przejmij kontrolę nad swoim czasem

Plik dziennika można otworzyć w dowolnym edytorze tekstu. Będzie jednak wyglądać lepiej, jeśli otworzysz go w edytorze kompatybilnym z Markdown. Na zrzucie ekranu widać logi w popularnym edytorze Typora.

Jak utworzyć aplikację do śledzenia czasu w systemie Windows za pomocą AutoHotKey

Plik przeceny wygenerowany przez skrypt jest ładowany w Typorze

Jest to łatwy sposób sprawdzenia, z których aplikacji korzystasz najczęściej i wymaga jedynie narzędzia takiego jak Notatnik.

Jeśli chcesz czegoś „bardziej wyjątkowego”, zawsze możesz „stylizować” dane wyjściowe rejestratora, aby zamiast tego utworzyć plik CSV. Jest to tak proste, jak dostosowanie zmiennej FileContent i rozszerzenia utworzonego pliku. Następnie możesz zaimportować takie pliki do aplikacji takich jak Excel, Google Calc, a nawet do narzędzi do śledzenia czasu innych firm.

Kompletny skrypt

#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

Zostaw komentarz

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Jak usunąć informację o żądaniu praw autorskich w prawym rogu ekranu w systemie Windows 10

Czy widzisz powiadomienie o aktywacji systemu Windows 10 w prawym rogu ekranu? W tym artykule dowiesz się, jak usunąć powiadomienie o żądaniu dotyczącym praw autorskich w systemie Windows 10.

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Instrukcje od AZ dotyczące instalacji systemu Windows 10 w wersji 14393.222

Niedawno firma Microsoft wydała najnowszą aktualizację zbiorczą dla użytkowników komputerów PC z systemem Windows 10 o nazwie Build 14393.222. Ta aktualizacja wydana dla systemu Windows 10 naprawia głównie błędy na podstawie opinii użytkowników i poprawia wydajność systemu operacyjnego.

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Chroń swoją sieć komputerową za pomocą hosta Bastion w zaledwie 3 krokach

Czy masz komputery w sieci lokalnej, które wymagają dostępu zewnętrznego? Dobrym rozwiązaniem może być użycie hosta bastionowego jako strażnika sieci.

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

3 sposoby na szybkie wyczyszczenie wszystkich dzienników zdarzeń w systemie Windows 10

Czasami może być konieczne jednoczesne usunięcie wszystkich starych dzienników zdarzeń. W tym przewodniku Quantrimang.com pokaże Ci 3 sposoby szybkiego usunięcia wszystkich dzienników zdarzeń w Podglądzie zdarzeń systemu Windows 10.

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jak utworzyć klucz Windows, jeśli klawiatura nie jest dostępna

Jeśli wolisz używać starej, klasycznej klawiatury, takiej jak IBM Model M, która nie zawiera fizycznego klawisza Windows, istnieje prosty sposób, aby dodać więcej, pożyczając klawisz, którego nie używasz często.

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

Jak utworzyć tryb przezroczystego tła w systemie Windows 10

WindowTop to narzędzie, które ma możliwość przyciemnienia wszystkich okien aplikacji i programów działających na komputerach z systemem Windows 10. Możesz także użyć interfejsu z ciemnym tłem w systemie Windows.

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

Metody fałszywego adresu IP umożliwiają anonimowy dostęp

W wielu poprzednich artykułach wspominaliśmy, że zachowanie anonimowości w Internecie jest niezwykle ważne. Co roku dochodzi do wycieku prywatnych informacji, co sprawia, że ​​bezpieczeństwo w Internecie staje się coraz bardziej konieczne. Z tego też powodu powinniśmy używać wirtualnych adresów IP. Poniżej dowiemy się o metodach tworzenia fałszywych adresów IP!

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Jak wyłączyć pasek języka na pasku zadań systemu Windows 8

Pasek języka w systemie Windows 8 to miniaturowy pasek narzędzi języka, zaprojektowany tak, aby automatycznie wyświetlał się na ekranie komputera stacjonarnego. Jednak wiele osób chce ukryć ten pasek języka na pasku zadań.

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Wskazówki dotyczące optymalizacji szybkości połączenia internetowego od Linksys

Maksymalizacja szybkości Internetu jest niezbędna do optymalizacji połączenia sieciowego. Możesz cieszyć się optymalną rozrywką i pracą, korzystając z komputerów, telewizorów z dostępem do Internetu, konsol do gier itp.

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Jak skonfigurować WEP, WPA, WPA2 dla routera Linksys

Łączność bezprzewodowa jest dziś koniecznością i dlatego bezpieczeństwo sieci bezprzewodowej jest niezbędne do zapewnienia bezpieczeństwa w sieci wewnętrznej.