如何使用 AutoHotKey 在 Windows 上建立時間追蹤應用程式

如何使用 AutoHotKey 在 Windows 上建立時間追蹤應用程式

你每天早點開始工作,這樣你就能在白天解決所有的事情。然後你看了看時鐘,已經凌晨 3 點了,但你的工作還沒完成。那麼時間都去哪了呢?

您可以使用專用的時間追蹤應用程序,但這些應用程式可能會很複雜且令人沮喪。相反,為什麼不創建自己的簡單小應用程式呢?該應用程式可以追蹤您白天使用的所有窗戶。您只需要 AutoHotKey、一個像記事本這樣的基本文字處理程序,以及大約半小時。讓我們開始吧!

使用 AutoHotKey 建立您自己的 Windows 日誌記錄腳本

在開始之前,您應該在電腦上安裝 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 =

首先將值「10」指派給AppLoggingRate,該值將用於計算視窗日誌記錄嘗試之間的時間。

當與 AHK 的 Sleep 函數一起使用時,1000 大約等於一秒。因此,透過將其乘以AppLogingRate,您將使 SleepTime 變數「等於 10 秒」。

LogPath是用於儲存日誌的路徑。這個範例使用值%A_ScriptDir%,它轉換為「運行腳本的目錄」。如果需要,您可以使用另一個資料夾的完整路徑。

最後,將LastActiveWindow設為空並稍後使用來檢查活動視窗是否已變更。

2. 監控活動視窗

由於我們想要持續監視哪個視窗處於活動狀態,如果它發生變化,則記錄標題和時間,因此我們必須使用「循環」。

顧名思義,循環連續運行,重複相同的函數。由於AHK的語法簡單,下面的「程式碼」相對容易理解:

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

只需鍵入單字“loop”,然後用“{”標記其開頭並用“}”結尾即可定義循環。「{」「}」之間的行中的所有內容都將永遠運行,直到您退出腳本。

透過等待 ( Sleep ) 等於 SleepTime 變數的時間來啟動迴圈這個變數使時間控制更簡單。您可以透過此變數「告訴」它每個循環應持續多少秒,而不是自己編輯腳本。

最後,使用Message Box測試腳本。嘗試儲存並運行它(雙擊腳本檔案)。您將看到一個訊息框,上面寫著“It Works!”(腳本工作)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]", " ")

考慮到這一點,讓我們「要求」AHK 從 ActiveWindow 變數中刪除所有與括號中的內容不符的字元:

  • 小寫
  • 大寫字母
  • 數位

然後,將結果指派給LogWindow 變數。

如何使用 AutoHotKey 在 Windows 上建立時間追蹤應用程式

使用正規表示式清理活動視窗的標題

設定好所有變數並收集所有有價值的資料後,您現在就可以格式化日誌檔案及其內容了。

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 記錄器就準備好了!儲存腳本並運行它。然後,查看markdown文件,10秒後該文件就會出現在腳本資料夾中。

如何使用 AutoHotKey 在 Windows 上建立時間追蹤應用程式

Windows 日誌檔案會建立在與腳本相同的目錄中

掌控自己的時間

您可以使用任何文字編輯器開啟日誌檔案。但是,如果您在與 Markdown 相容的編輯器中開啟它,它看起來會更好。在螢幕截圖中,您可以看到流行的 Typora 編輯器中的日誌。

如何使用 AutoHotKey 在 Windows 上建立時間追蹤應用程式

腳本產生的markdown檔案載入到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

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

什麼是惡意軟體 HackTool:Win32/Keygen?如何去除?

您是否掃描過您的設備並發現它感染了 HackTool:Win32/Keygen?在您使用破解或金鑰產生器啟動進階軟體後,Windows Defender 可能會自動警告您有關此惡意軟體的存在。

在 Windows 10 上建立備份和還原點(Restore Point)的說明

在 Windows 10 上建立備份和還原點(Restore Point)的說明

探索如何在Windows 10上建立和管理還原點,這是一項有效的系統保護功能,可以讓您快速還原系統至先前狀態。

在 Windows 10 中開啟裝置管理員的 15 種方法

在 Windows 10 中開啟裝置管理員的 15 種方法

您可以使用以下 15 種方法輕鬆在 Windows 10 中開啟<strong>裝置管理員</strong>,包括使用命令、捷徑和搜尋。

Windows「顯示桌面」的 10 種超快速方法

Windows「顯示桌面」的 10 種超快速方法

很多人不知道如何快速顯示桌面,只好將各個視窗一一最小化。這種方法對於用戶來說非常耗時且令人沮喪。因此,本文將向您介紹Windows中快速顯示桌面的十種超快速方法。

如何使用 Windows Repair 修復 Windows 錯誤

如何使用 Windows Repair 修復 Windows 錯誤

Windows Repair 是一款有效的 Windows 錯誤修復工具,幫助使用者修復與 Internet Explorer、Windows Update 和其他重要程式相關的錯誤。

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

如何在 Windows 10 中開啟資料夾選項或檔案總管選項

您可以使用檔案總管選項來變更檔案和資料夾的工作方式並控制顯示。掌握如何在 Windows 10 中開啟資料夾選項的多種方法。

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

有關在 Windows 10 上刪除使用者帳戶的 5 種方法的說明

刪除不使用的使用者帳戶可以顯著釋放記憶體空間,並讓您的電腦運行得更流暢。了解如何刪除 Windows 10 使用者帳戶的最佳方法。

如何使用Bootsect /nt60將VBC更新為BOOTMGR

如何使用Bootsect /nt60將VBC更新為BOOTMGR

使用 bootsect 命令能夠輕鬆修復磁碟區引導程式碼錯誤,確保系統正常啟動,避免 hal.dll 錯誤及其他啟動問題。

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

Windows 11 中的存檔應用程式功能是什麼?應該啟用還是停用它?

存檔應用程式是一項功能,可以自動卸載您很少使用的應用程序,同時保留其關聯的檔案和設定。了解如何有效利用 Windows 11 中的存檔應用程式功能。

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

如何在 Windows 10 上為 BlueStacks 5 啟用虛擬化 (VT)

要啟用虛擬化,您必須先進入 BIOS 並從 BIOS 設定中啟用虛擬化,這將顯著提升在 BlueStacks 5 上的效能和遊戲體驗。