AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

매일 일찍 일을 시작하면 낮 동안 모든 것을 해결할 수 있습니다. 그런 다음 시계를 확인하면 새벽 3시지만 작업은 아직 완료되지 않았습니다. 그렇다면 시간은 어디로 갔는가?

전용 시간 추적 앱을 사용할 수 있지만 이는 복잡하고 실망스러울 수 있습니다. 대신, 자신만의 간단하고 작은 앱을 만들어 보는 것은 어떨까요? 이 애플리케이션은 하루 동안 사용한 모든 창을 추적할 수 있습니다. 메모장과 같은 기본 워드 프로세서인 AutoHotKey만 있으면 30분 정도 소요됩니다. 시작하자!

AutoHotKey를 사용하여 나만의 Windows 로깅 스크립트 만들기

시작하기 전에 컴퓨터에 AHK를 설치해야 합니다. AHK는 스크립트의 "파서" 역할을 하기 때문입니다. 이는 스크립트를 "실행"할 수 있게 해주는 도구입니다.

참고 : 완료 후 스크립트를 컴파일하여 실제 실행 프로그램으로 전환할 수도 있습니다. 그러나 이는 이 기사의 범위를 벗어납니다.

공식 홈페이지에서 AutoHotKey를 다운로드하여 설치하세요.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

새로 만들기 > AutoHotKey 스크립트를 선택하세요.

즐겨 사용하는 파일 관리자를 실행하고 스크립트를 저장하려는 폴더에 액세스하세요. 그런 다음 빈 위치를 마우스 오른쪽 버튼으로 클릭하고 새로 만들기 > AutoHotKey 스크립트를 선택합니다 .

완료되면 실제 스크립트를 작성할 차례입니다.

1. 필요한 변수 파악

원하는 편집기에서 스크립트를 엽니다. Windows와 함께 제공되는 메모장과 같은 간단한 것을 사용할 수 있지만 이 기사에서는 이 튜토리얼에서는 Notepad++를 사용합니다  . Notepad++는 무료이며 이러한 목적에 더 적합하므로 사용해 보시기 바랍니다.

스크립트 형식에 영향을 미칠 수 있는 Word 또는 Google Docs와 같은 응용 프로그램을 사용하면 안 됩니다. 텍스트 또는 코드 편집기를 사용하십시오.

스크립트에는 호환성 및 성능에 대한 몇 가지 기본 권장 정보가 포함됩니다. 그대로 두고 아래 스크립트를 시작하세요.

다음으로 시작:

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

창 로깅 시도 사이의 시간을 계산하는 데 사용되는 AppLoggingRate 에 값 "10" 을 할당하여 시작합니다.

AHK의 Sleep 기능과 함께 사용하면 1000은 대략 1초와 같습니다. 따라서 AppLogingRate 를 곱하면 SleepTime 변수가 "10초와 동일"해집니다.

LogPath는 로그를 저장하는 데 사용되는 경로입니다. 이 예 에서는 "스크립트를 실행하는 디렉터리"로 변환되는 %A_ScriptDir% 값을 사용하고 있습니다 . 원하는 경우 다른 폴더에 대한 전체 경로를 사용할 수 있습니다.

마지막으로 LastActiveWindow를 공백으로 설정 하고 나중에 활성 창이 변경되었는지 확인하는 데 사용합니다.

2. 활성 창 모니터링

어떤 창이 활성화되어 있는지 지속적으로 모니터링하고 변경되면 제목과 시간을 기록하고 싶기 때문에 "루프"를 사용해야 합니다.

이름에서 알 수 있듯이 루프는 동일한 기능을 반복하면서 계속 실행됩니다. AHK의 간단한 구문 덕분에 다음 "코드"는 비교적 이해하기 쉽습니다.

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

단순히 "loop"라는 단어를 입력한 다음 "{" 로 시작 하고 "}"로 끝나는 방식으로 루프를 정의합니다. "{""}" 사이의 줄에 있는 모든 내용은 스크립트를 종료할 때까지 영원히 실행됩니다.

SleepTime 변수 와 동일한 시간 동안 대기( Sleep ) 하여 루프를 시작합니다 . 이 변수를 사용하면 시간 제어가 더 간단해집니다. 스크립트를 직접 편집하는 대신 이 변수를 통해 각 루프가 몇 초 동안 지속되어야 하는지를 "알려줄" 수 있습니다.

마지막으로 메시지 상자를 사용하여 스크립트를 테스트합니다. 저장하고 실행해 보세요(스크립트 파일을 두 번 클릭). "작동합니다!" 라는 메시지 상자가 표시됩니다. (스크립트 작업) 10초 후.

Windows 트레이에서 AHK 아이콘을 마우스 오른쪽 버튼으로 클릭하고 메시지 상자가 충분하면 스크립트를 종료하십시오. 그런 다음 편집기로 돌아가 MsgBox 줄을 다음으로 바꿉니다.

WinGetActiveTitle, ActiveWindow

활성화된 창의 제목을 가져오는 명령입니다. 테스트를 위해 스크립팅하는 동안 예제에서 사용한 추가 "StoreActiveWindow" 줄을 생략합니다 .

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

활성 창의 제목을 가져와 변수에 저장합니다.

3. 현재 시간과 이름을 가져옵니다.

이제 스크립트 논리의 핵심이 나옵니다. 활성 창의 이름을 이전 창의 이름과 비교하고, 다르면 "뭔가를 하십시오". 모든 것은 다음과 같이 간단합니다.

If ActiveWindow != %LastActiveWindow%
{
}

위의 내용을 고려하여 현재 ActiveWindow가 LastActiveWindow 변수 (처음에는 비어 있음으로 설정됨) 에 저장된 값과 다른지( != ) 확인하십시오. 그렇다면 AHK는 현재 비어 있는 {} 사이의 코드를 실행합니다.

활성 창과 이전 창의 제목을 비교하는 기능 설정

창의 가동 시간을 측정하려면 날짜와 시간을 모두 추적해야 합니다. 이름에 날짜를 사용하여 매일 다른 로그가 유지됩니다. 모든 변경 사항뿐만 아니라 해당 변경 사항이 발생한 시간도 기록됩니다. 이를 수행하려면 다음을 사용하여 LogTimeLogFilename 변수에 다른 시간 형식을 할당하십시오 .

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

"If ActiveWindow..." 의 중괄호 사이에 해당 행을 추가하면 AHK가 창 변경을 감지할 때 해당 행을 실행할 수 있습니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

현재 시간을 가져와서 다른 형식의 두 변수에 할당합니다.

4. 데이터 형식

이제 활성 창의 제목뿐만 아니라 서로 다른 형식의 두 변수로 시간을 캡처합니다. 그러나 작은 문제가 있습니다. 창 제목에 원하지 않는 문자가 포함될 수도 있습니다. 다음과 같이 AHK의 RegEx 지원을 사용하여 영숫자가 아닌 모든 문자를 제거할 수 있습니다.

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

이를 염두에 두고 ActiveWindow 변수에서 대괄호 안의 내용과 일치하지 않는 모든 문자를 제거하도록 AHK에 "요청"해 보겠습니다.

  • 소문자
  • 대문자
  • 숫자

그런 다음 결과를 LogWindow 변수에 할당합니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

RegEx를 사용하여 활성 창 제목 정리

모든 변수가 설정되고 중요한 데이터가 모두 수집되었으므로 이제 로그 파일과 해당 내용의 형식을 지정할 준비가 되었습니다.

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

이전에는 현재 날짜를 LogFilename 변수에 할당했습니다. 따라서 첫 번째 줄에는 날짜에 "_AppLog.md"를 추가하여 파일명으로 사용합니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

로그 파일 이름 설정

두 번째 줄에서는 처음에 로그 파일의 대상으로 정의된 변수 LogPath 와 파일 이름을 결합합니다. 이들 조합은 LogFile 변수에 할당된 로그 파일의 전체 경로 이름입니다 .

"좋은 측정을 위해 빈 줄, 시간 - 창 이름, 두 개의 추가 빈 줄, 구분선 및 또 다른 빈 줄"에 해당하는 값을 FileContent 변수 에 할당해 보겠습니다 .

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • 문자 "n"은 AHK에게 새 줄을 입력하라고 지시합니다( Enter를 한 번 누르는 것과 동일).
  • 크로스다운 호환 뷰어에 표시되면 세 개의 대시가 구분 기호로 나타납니다.
  • "% LogTime%" , "% LogWindow%"는 활성 창의 이름과 감지 시간을 저장하는 변수입니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

로그 파일의 내용을 결정합니다.

5. 파일 업데이트

파일에 쓰려는 내용과 경로 및 파일 이름을 정의했습니다. 남은 것은 다음과 같은 실제적이고 간단한 텍스트뿐입니다.

FileAppend, %FileContent%, %LogFile%

"FileContent" 변수의 모든 내용을 "LogFile" 파일 에 추가합니다 .

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

AHK의 Append 기능을 사용하여 로그 파일을 업데이트하거나 처음부터 새로 생성하세요.

"append" 기능은 파일이 존재하는 경우 "FileContent"를 파일에 추가하지만 파일이 존재하지 않는 경우 처음부터 새로 생성합니다.

마지막 조정이 하나 있습니다. LastActiveWindow 변수의 내용을 현재 활성 창으로 바꾸는 것입니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

향후 테스트를 위해 현재 활성 창의 제목을 LastActiveWindow 변수에 삽입합니다.

이렇게 하려면 스크립트가 다음 창 변경을 감지할 수 있어야 합니다.

LastActiveWindow = %ActiveWindow%

그리고 마지막 추가로 Windows 로거가 준비되었습니다! 스크립트를 저장하고 실행합니다. 그런 다음 마크다운 파일을 확인하면 10초 후에 이 파일이 스크립트 파일 폴더에 나타납니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

Windows 로그 파일은 스크립트와 동일한 디렉터리에 생성됩니다.

자신의 시간을 통제하세요

텍스트 편집기를 사용하여 로그 파일을 열 수 있습니다. 하지만 마크다운 호환 편집기에서 열면 더 보기 좋습니다. 스크린샷에서 인기 있는 Typora 편집기의 로그를 볼 수 있습니다.

AutoHotKey를 사용하여 Windows에서 시간 추적 응용 프로그램을 만드는 방법

스크립트에 의해 생성된 마크다운 파일이 Typora에 로드됩니다.

가장 많은 시간을 사용하고 있는 앱을 확인하는 쉬운 방법이며, 메모장과 같은 도구만 있으면 사용할 수 있습니다.

"더 특별한" 것을 원한다면 언제든지 로거의 출력을 "스타일링"하여 CSV 파일을 생성할 수 있습니다. FileContent 변수 와 생성된 파일의 확장자를 조정하는 것만큼 쉽습니다 . 그런 다음 이러한 파일을 Excel, Google Calc 또는 타사 시간 추적기와 같은 응용 프로그램으로 가져올 수 있습니다.

완전한 스크립트

#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

Chromebook을 별도의 화면이나 TV에 연결하는 방법

Chromebook을 별도의 화면이나 TV에 연결하는 방법

Chrome OS는 사용자가 Chromebook을 별도의 화면이나 TV에 연결할 수 있는 다양한 방법을 지원합니다.

ITop Data Recovery를 사용하여 컴퓨터 데이터를 복원하는 방법

ITop Data Recovery를 사용하여 컴퓨터 데이터를 복원하는 방법

iTop Data Recovery는 Windows 컴퓨터에서 삭제된 데이터를 복구하는 데 도움이 되는 소프트웨어입니다. 이 가이드에서는 iTop Data Recovery 사용 방법에 대해 자세히 설명합니다.

Cleaner One Pro로 Mac, Windows PC 속도를 높이는 방법

Cleaner One Pro로 Mac, Windows PC 속도를 높이는 방법

느린 PC와 Mac의 속도를 높이고 유지 관리하는 방법과 Cleaner One Pro와 같은 유용한 도구를 알아보세요.

MSIX란 무엇인가요? Windows의 새로운 파일 형식에 대해 알아보기

MSIX란 무엇인가요? Windows의 새로운 파일 형식에 대해 알아보기

MSIX는 LOB 애플리케이션부터 Microsoft Store, Store for Business 또는 기타 방법을 통해 배포되는 애플리케이션까지 지원하는 크로스 플랫폼 설치 관리자입니다.

키보드 없이 Windows 컴퓨터 화면에 로그인하는 방법

키보드 없이 Windows 컴퓨터 화면에 로그인하는 방법

컴퓨터 키보드가 작동을 멈춘 경우, 마우스나 터치 스크린을 사용하여 Windows에 로그인하는 방법을 알아보세요.

AMD Ryzen Master로 RAM을 쉽게 오버클럭하는 방법

AMD Ryzen Master로 RAM을 쉽게 오버클럭하는 방법

다행히 AMD Ryzen 프로세서를 실행하는 Windows 컴퓨터 사용자는 Ryzen Master를 사용하여 BIOS를 건드리지 않고도 RAM을 쉽게 오버클럭할 수 있습니다.

MS Edge를 실행하고 명령줄에서 URL을 여는 방법

MS Edge를 실행하고 명령줄에서 URL을 여는 방법

Microsoft Edge 브라우저는 명령 프롬프트와 같은 명령줄 도구에서 열 수 있도록 지원합니다. 명령줄에서 Edge 브라우저를 실행하는 방법과 URL을 여는 명령을 알아보세요.

컴퓨터에서 가상 드라이브를 생성하는 최고의 소프트웨어

컴퓨터에서 가상 드라이브를 생성하는 최고의 소프트웨어

이것은 컴퓨터에 가상 드라이브를 생성하는 많은 소프트웨어 중 5개입니다. 가상 드라이브 생성 소프트웨어를 통해 효율적으로 파일을 관리해 보세요.

이제 Windows Store에서 Surface 노트북 하드웨어 테스트 도구를 사용할 수 있습니다.

이제 Windows Store에서 Surface 노트북 하드웨어 테스트 도구를 사용할 수 있습니다.

Microsoft의 공식 Surface 하드웨어 테스트 도구인 Surface Diagnostic Toolkit을 Windows Store에서 다운로드하여 배터리 문제 해결 등의 필수 정보를 찾으세요.

USB에 숨겨진 파일과 폴더를 표시하는 방법

USB에 숨겨진 파일과 폴더를 표시하는 방법

바이러스가 USB 드라이브를 공격하면 USB 드라이브의 모든 데이터를 "먹거나" 숨길 수 있습니다. USB 드라이브의 숨겨진 파일과 폴더를 표시하는 방법은 LuckyTemplates의 아래 기사를 참조하세요.