วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

คุณเริ่มงานทุกวันแต่เช้าเพื่อที่คุณจะได้แก้ปัญหาทุกอย่างในระหว่างวันได้ เช็คนาฬิกาก็ตี 3 แล้ว แต่งานยังไม่เสร็จ แล้วเวลาหายไปไหน?

คุณสามารถใช้แอปติดตามเวลาโดยเฉพาะได้ แต่แอปเหล่านี้อาจซับซ้อนและน่าหงุดหงิดได้ ทำไมไม่สร้างแอปเล็กๆ ง่ายๆ ของคุณเองแทนล่ะ แอปพลิเคชันนี้สามารถติดตามหน้าต่างทั้งหมดที่คุณใช้ในระหว่างวัน คุณเพียงแค่ต้องมี AutoHotKey ซึ่งเป็นโปรแกรมประมวลผลคำพื้นฐานเช่น Notepad และใช้เวลาประมาณครึ่งชั่วโมง มาเริ่มกันเลย!

สร้างสคริปต์บันทึกหน้าต่างของคุณเองด้วย AutoHotKey

ก่อนเริ่มต้น คุณควรติดตั้ง AHK บนคอมพิวเตอร์ของคุณ เนื่องจากจะทำหน้าที่เป็น "พาร์เซอร์" สำหรับสคริปต์ เป็นเครื่องมือที่จะอนุญาตให้สคริปต์ของคุณ "ทำงาน"

หมายเหตุ : คุณยังสามารถคอมไพล์สคริปต์หลังจากเสร็จสิ้นเพื่อเปลี่ยนให้เป็นโปรแกรมปฏิบัติการจริงได้ อย่างไรก็ตาม นั่นอยู่นอกเหนือขอบเขตของบทความนี้

ดาวน์โหลด AutoHotKey จากเว็บไซต์อย่างเป็นทางการและติดตั้ง

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

เลือกใหม่ > สคริปต์ AutoHotKey

เปิดโปรแกรมจัดการไฟล์ที่คุณชื่นชอบและเข้าถึงโฟลเดอร์ที่คุณต้องการจัดเก็บสคริปต์ จากนั้นคลิกขวาที่ตำแหน่งว่างแล้วเลือกNew > AutoHotKey Script

เมื่อเสร็จแล้วก็ถึงเวลาเขียนสคริปต์จริง

1. ระบุตัวแปรที่จำเป็น

เปิดสคริปต์ในตัวแก้ไขที่คุณชื่นชอบ คุณสามารถใช้โปรแกรมง่ายๆ เช่น Notepad ที่มาพร้อมกับ 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ซึ่งจะใช้ในการคำนวณเวลาระหว่างความพยายามในการบันทึกหน้าต่าง

เมื่อใช้กับฟังก์ชัน Sleep ของ AHK ค่า 1,000 จะเท่ากับประมาณหนึ่งวินาที ดังนั้นด้วยการคูณด้วยAppLogingRateคุณจะสร้างตัวแปร SleepTime "เท่ากับ 10 วินาที"

LogPathเป็นเส้นทางที่ใช้จัดเก็บบันทึก ตัวอย่างกำลังใช้ค่า%A_ScriptDir%ซึ่งแปลเป็น "ไดเรกทอรีจากที่ที่คุณเรียกใช้สคริปต์" คุณสามารถใช้เส้นทางแบบเต็มไปยังโฟลเดอร์อื่นได้หากต้องการ

สุดท้าย ให้ตั้งค่าLastActiveWindowให้ว่างเปล่าและใช้ในภายหลังเพื่อตรวจสอบว่าหน้าต่างที่ใช้งานอยู่มีการเปลี่ยนแปลงหรือไม่

2. ตรวจสอบหน้าต่างที่ใช้งานอยู่

เนื่องจากเราต้องการติดตามอย่างต่อเนื่องว่าหน้าต่างใดทำงานอยู่ และหากมีการเปลี่ยนแปลง บันทึกชื่อและเวลา เราจึงต้องใช้ "วนซ้ำ"

ตามชื่อที่แนะนำ การวนซ้ำจะทำงานอย่างต่อเนื่อง โดยทำซ้ำฟังก์ชันเดียวกัน ด้วยไวยากรณ์ง่ายๆ ของ AHK ทำให้ "โค้ด" ต่อไปนี้ค่อนข้างเข้าใจง่าย:

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

กำหนดลูปโดยเพียงพิมพ์คำว่า "loop" จากนั้นทำเครื่องหมายที่ขึ้นต้นด้วย"{"และลงท้ายด้วย"}"ทุกอย่างในบรรทัดระหว่าง"{"และ"}"จะทำงานตลอดไปจนกว่าคุณจะออกจากสคริปต์

เริ่มต้นการวนซ้ำโดยการรอ ( Sleep ) เป็นระยะเวลาเท่ากับตัวแปร SleepTimeตัวแปรนี้ทำให้การควบคุมเวลาง่ายขึ้น แทนที่จะแก้ไขสคริปต์ด้วยตัวเอง คุณสามารถ "บอก" สคริปต์ได้ว่าแต่ละวงควรใช้เวลากี่วินาทีผ่านตัวแปรนี้

สุดท้าย ใช้กล่องข้อความเพื่อทดสอบสคริปต์ ลองบันทึกและเรียกใช้ (ดับเบิลคลิกที่ไฟล์สคริปต์) คุณจะเห็นกล่องข้อความที่ระบุว่า"ใช้งานได้!" (การทำงานของสคริปต์) หลังจากผ่านไป 10 วินาที

คลิกขวาที่ไอคอนของ AHK ในถาด Windows และออกจากสคริปต์เมื่อคุณมีกล่องข้อความเพียงพอ จากนั้นกลับไปที่ตัวแก้ไขและแทนที่ บรรทัด MsgBoxด้วย:

WinGetActiveTitle, ActiveWindow

นี่คือคำสั่งเพื่อรับชื่อของหน้าต่างที่ใช้งานอยู่ ละเว้น บรรทัดพิเศษ "StoreActiveWindow"ที่ตัวอย่างใช้ขณะเขียนสคริปต์สำหรับการทดสอบ

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

รับชื่อของหน้าต่างที่ใช้งานอยู่และเก็บไว้ในตัวแปร

3. รับเวลาและชื่อปัจจุบัน

มาถึงแก่นของตรรกะของสคริปต์แล้ว เปรียบเทียบชื่อของหน้าต่างที่ใช้งานอยู่กับชื่อก่อนหน้า และหากแตกต่างกัน ให้ "ทำอะไรสักอย่าง" ทุกอย่างง่ายเช่นนี้:

If ActiveWindow != %LastActiveWindow%
{
}

จากที่กล่าวมาข้างต้น ให้ตรวจสอบว่าActiveWindowปัจจุบัน แตกต่าง ( != ) จากค่าที่เก็บไว้ใน ตัวแปร LastActiveWindowหรือไม่ (ซึ่งเริ่มแรกถูกตั้งค่าให้ว่างเปล่า) หากเป็นเช่นนั้น AHK จะดำเนินการโค้ดระหว่าง{และ}ซึ่งขณะนี้ว่างเปล่า

ตั้งค่าฟังก์ชันเพื่อเปรียบเทียบชื่อเรื่องของหน้าต่างที่ใช้งานอยู่และหน้าต่างก่อนหน้า

จำเป็นต้องติดตามทั้งวันที่และเวลาเพื่อวัดเวลาทำงานของหน้าต่าง บันทึกที่แตกต่างกันในแต่ละวันโดยใช้วันที่ในชื่อจะถูกเก็บไว้ ไม่เพียงแต่การเปลี่ยนแปลงทุกครั้งแต่เวลาที่มันเกิดขึ้นจะถูกบันทึกด้วย ในการทำเช่นนั้น ให้กำหนดรูปแบบเวลาที่แตกต่างกันให้กับ ตัวแปร LogTimeและLogFilenameด้วย:

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

เพิ่มเส้นเหล่านั้นระหว่างเครื่องหมายปีกกาใน"If ActiveWindow..."เพื่อให้ AHK เรียกใช้เมื่อตรวจพบการเปลี่ยนแปลงหน้าต่าง

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

รับเวลาปัจจุบันและกำหนดให้กับตัวแปรสองตัวที่มีรูปแบบต่างกัน

4. รูปแบบข้อมูล

ตอนนี้เราบันทึกเวลาในตัวแปรที่มีรูปแบบต่างกันสองตัว รวมถึงชื่อของหน้าต่างที่ใช้งานอยู่ อย่างไรก็ตาม มีปัญหาเล็กน้อย: ชื่อเรื่องของหน้าต่างอาจมีอักขระที่ไม่ต้องการด้วย คุณสามารถลบอักขระที่ไม่ใช่ตัวอักษรและตัวเลขทั้งหมดได้โดยใช้การรองรับ RegEx ของ AHK ���้วย:

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

ด้วยเหตุนี้ เรามา "ขอให้" AHK ลบอักขระทั้งหมดออกจากตัวแปร ActiveWindow ที่ไม่ตรงกับสิ่งที่อยู่ในวงเล็บ:

  • ตัวพิมพ์เล็ก
  • ตัวพิมพ์ใหญ่
  • ตัวเลข

จากนั้นกำหนดผลลัพธ์ให้กับตัวแปร LogWindow

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

ล้างชื่อหน้าต่างที่ใช้งานอยู่ด้วย RegEx

เมื่อตั้งค่าตัวแปรทั้งหมดและข้อมูลอันมีค่าทั้งหมดที่รวบรวมไว้ ตอนนี้คุณก็พร้อมที่จะจัดรูปแบบไฟล์บันทึกและเนื้อหาแล้ว

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

ก่อนหน้านี้ เราได้กำหนดวันที่ปัจจุบันให้กับตัวแปร LogFilenameดังนั้นสำหรับบรรทัดแรก ให้เพิ่ม"_AppLog.md"เข้ากับวันที่เพื่อใช้เป็นชื่อไฟล์

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

ตั้งชื่อไฟล์บันทึก

ในบรรทัดที่สอง ให้รวมตัวแปรLogPathซึ่งกำหนดไว้ที่จุดเริ่มต้นเป็นปลายทางสำหรับไฟล์บันทึกพร้อมกับชื่อไฟล์ การรวมกันคือชื่อพาธแบบเต็มของไฟล์บันทึก ซึ่งกำหนดให้กับตัวแปรLogFile

มากำหนดค่าที่เทียบเท่ากันของ"บรรทัดว่าง เวลา - ชื่อหน้าต่าง บรรทัดว่างอีกสองบรรทัด ตัวแบ่ง และบรรทัดว่างอีกบรรทัดเพื่อการวัดที่ดี"ให้กับตัวแปร FileContent

FileContent = `n%LogTime% - %LogWindow%`n`n- - -`n
  • ตัวอักษร"n"บอกให้ AHK ขึ้นบรรทัดใหม่ (เทียบเท่ากับการกดEnterหนึ่งครั้ง)
  • ขีดสามขีดจะปรากฏเป็นตัวคั่นเมื่อแสดงในโปรแกรมดูที่เข้ากันได้แบบ cross-down
  • "% LogTime%"และ "% LogWindow%"เป็นตัวแปรที่เก็บชื่อของหน้าต่างที่ใช้งานอยู่และเวลาที่ตรวจพบ

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

กำหนดเนื้อหาของไฟล์บันทึก

5. อัพเดตไฟล์

คุณได้กำหนดสิ่งที่เราต้องการเขียนลงในไฟล์ รวมถึงเส้นทางและชื่อไฟล์ สิ่งที่เหลืออยู่คือข้อความจริงที่เรียบง่ายดังนี้:

FileAppend, %FileContent%, %LogFile%

ผนวกทุกอย่างใน ตัวแปร "FileContent"เข้ากับไฟล์ "LogFile"

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

ใช้ฟังก์ชันผนวกของ AHK เพื่ออัปเดตไฟล์บันทึกหรือสร้างใหม่ตั้งแต่ต้น

ฟังก์ชัน "ผนวก" จะเพิ่ม "FileContent" ลงในไฟล์หากมีอยู่ แต่จะสร้างใหม่ตั้งแต่ต้นหากไม่มีไฟล์อยู่

มีการปรับแต่งครั้งสุดท้าย: แทนที่เนื้อหาของ ตัวแปร LastActiveWindowด้วยหน้าต่างที่ใช้งานอยู่ในปัจจุบัน

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

แทรกชื่อของหน้าต่างที่ใช้งานปัจจุบันลงในตัวแปร LastActiveWindow สำหรับการทดสอบในอนาคต

เมื่อต้องการทำเช่นนี้ สคริปต์ควรจะสามารถตรวจพบการเปลี่ยนแปลงหน้าต่างถัดไปได้

LastActiveWindow = %ActiveWindow%

และด้วยการเพิ่มครั้งสุดท้าย ตัวบันทึกหน้าต่างก็พร้อมแล้ว! บันทึกสคริปต์และเรียกใช้ จากนั้นตรวจสอบไฟล์มาร์กดาวน์ ไฟล์นี้จะปรากฏในโฟลเดอร์ไฟล์สคริปต์หลังจากผ่านไป 10 วินาที

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

ไฟล์บันทึกของ Windows ถูกสร้างขึ้นในไดเร็กทอรีเดียวกันกับสคริปต์

ควบคุมเวลาของคุณเอง

คุณสามารถเปิดไฟล์บันทึกด้วยโปรแกรมแก้ไขข้อความใดก็ได้ อย่างไรก็ตาม มันจะดูดีขึ้นหากคุณเปิดมันในตัวแก้ไขที่เข้ากันได้กับมาร์กดาวน์ ในภาพหน้าจอ คุณสามารถดูบันทึกในตัวแก้ไข Typora ยอดนิยม

วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน Windows ด้วย AutoHotKey

ไฟล์มาร์กดาวน์ที่สร้างโดยสคริปต์ถูกโหลดใน Typora

เป็นวิธีง่ายๆ ในการตรวจสอบว่าแอปใดที่คุณใช้บ่อยที่สุด และต้องใช้เพียงเครื่องมืออย่าง Notepad เท่านั้นจึงจะใช้งานได้

หากคุณต้องการอะไรที่ "พิเศษกว่านี้" คุณสามารถ "จัดรูปแบบ" เอาต์พุตของตัวบันทึกเพื่อสร้างไฟล์ 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

วิธีย่อขนาดหน้าจอใน Windows 10

วิธีย่อขนาดหน้าจอใน Windows 10

บทความนี้จะแสดงวิธีย่อขนาดหน้าจอใน Windows 10 เพื่อให้คุณใช้งานได้อย่างมีประสิทธิภาพ

วิธีปิด (หรือเปิด) Xbox Game Bar บน Windows 10

วิธีปิด (หรือเปิด) Xbox Game Bar บน Windows 10

Xbox Game Bar เป็นเครื่องมือสนับสนุนที่ยอดเยี่ยมที่ Microsoft ติดตั้งบน Windows 10 ซึ่งผู้ใช้สามารถเรียนรู้วิธีเปิดหรือปิดได้อย่างง่ายดาย

5 วิธีในการจดบันทึกบน Windows 11 โดยไม่ต้องดาวน์โหลดซอฟต์แวร์

5 วิธีในการจดบันทึกบน Windows 11 โดยไม่ต้องดาวน์โหลดซอฟต์แวร์

หากความจำของคุณไม่ค่อยดี คุณสามารถใช้เครื่องมือเหล่านี้เพื่อเตือนตัวเองถึงสิ่งสำคัญขณะทำงานได้

วิธีนำแอพพลิเคชั่นไปไว้บนหน้าจอคอมพิวเตอร์ Windows 11

วิธีนำแอพพลิเคชั่นไปไว้บนหน้าจอคอมพิวเตอร์ Windows 11

หากคุณคุ้นเคยกับ Windows 10 หรือเวอร์ชันก่อนหน้า คุณอาจประสบปัญหาในการนำแอปพลิเคชันไปยังหน้าจอคอมพิวเตอร์ของคุณในอินเทอร์เฟซ Windows 11 ใหม่ มาทำความรู้จักกับวิธีการง่ายๆ เพื่อเพิ่มแอพพลิเคชั่นลงในเดสก์ท็อปของคุณ

วิธีถอนการติดตั้งไดรเวอร์บน Windows อย่างสมบูรณ์

วิธีถอนการติดตั้งไดรเวอร์บน Windows อย่างสมบูรณ์

เพื่อหลีกเลี่ยงปัญหาและข้อผิดพลาดหน้าจอสีน้ำเงิน คุณต้องลบไดรเวอร์ที่ผิดพลาดซึ่งเป็นสาเหตุของปัญหาออก บทความนี้จะแนะนำวิธีถอนการติดตั้งไดรเวอร์บน Windows โดยสมบูรณ์

วิธีเปิดใช้งานแป้นพิมพ์เสมือน/แป้นพิมพ์สัมผัสบน Windows 11

วิธีเปิดใช้งานแป้นพิมพ์เสมือน/แป้นพิมพ์สัมผัสบน Windows 11

เรียนรู้วิธีเปิดใช้งานแป้นพิมพ์เสมือนบน Windows 11 เพื่อเพิ่มความสะดวกในการใช้งาน ผสานเทคโนโลยีใหม่เพื่อประสบการณ์ที่ดียิ่งขึ้น

วิธีใช้ AdLock เพื่อบล็อกโฆษณาบนคอมพิวเตอร์ของคุณ

วิธีใช้ AdLock เพื่อบล็อกโฆษณาบนคอมพิวเตอร์ของคุณ

เรียนรู้การติดตั้งและใช้ AdLock เพื่อบล็อกโฆษณาบนคอมพิวเตอร์ของคุณอย่างมีประสิทธิภาพและง่ายดาย

หนอนคืออะไร? เหตุใดจึงเป็นอันตรายต่อคอมพิวเตอร์?

หนอนคืออะไร? เหตุใดจึงเป็นอันตรายต่อคอมพิวเตอร์?

เวิร์มคอมพิวเตอร์คือโปรแกรมมัลแวร์ประเภทหนึ่งที่มีหน้าที่หลักคือการแพร่ไวรัสไปยังคอมพิวเตอร์เครื่องอื่นในขณะที่ยังคงทำงานอยู่บนระบบที่ติดไวรัส

วิธีดาวน์โหลด อัปเดต และแก้ไขปัญหาไดรเวอร์ USB บน Windows 10

วิธีดาวน์โหลด อัปเดต และแก้ไขปัญหาไดรเวอร์ USB บน Windows 10

เรียนรู้วิธีดาวน์โหลดและอัปเดตไดรเวอร์ USB บนอุปกรณ์ Windows 10 เพื่อให้ทำงานได้อย่างราบรื่นและมีประสิทธิภาพ

5 วิธีในการปรับแต่ง Xbox Game Bar บน Windows PC

5 วิธีในการปรับแต่ง Xbox Game Bar บน Windows PC

หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Xbox Game Bar และวิธีปรับแต่งให้เหมาะกับประสบการณ์การเล่นเกมที่สมบูรณ์แบบของคุณ บทความนี้มีข้อมูลทั้งหมด