วิธีสร้างแอปพลิเคชั่นติดตามเวลาบน 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

คำแนะนำจาก AZ เกี่ยวกับวิธีติดตั้ง Windows 10 บิวด์ 14393.222

คำแนะนำจาก AZ เกี่ยวกับวิธีติดตั้ง Windows 10 บิวด์ 14393.222

ล่าสุด Microsoft เปิดตัวการอัปเดตสะสมล่าสุดสำหรับผู้ใช้พีซี Windows 10 ที่เรียกว่า Build 14393.222 การอัปเดตนี้เผยแพร่สำหรับ Windows 10 โดยส่วนใหญ่จะแก้ไขจุดบกพร่องตามคำติชมของผู้ใช้ และปรับปรุงประสบการณ์ด้านประสิทธิภาพของระบบปฏิบัติการ

ปกป้องเครือข่ายคอมพิวเตอร์ของคุณด้วยโฮสต์ Bastion ในเวลาเพียง 3 ขั้นตอน

ปกป้องเครือข่ายคอมพิวเตอร์ของคุณด้วยโฮสต์ Bastion ในเวลาเพียง 3 ขั้นตอน

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

วิธีสร้างคีย์ Windows หากไม่มีแป้นพิมพ์ของคุณ

วิธีสร้างคีย์ Windows หากไม่มีแป้นพิมพ์ของคุณ

หากคุณต้องการใช้แป้นพิมพ์คลาสสิกรุ่นเก่า เช่น IBM Model M ที่ไม่มีคีย์ Windows มาให้ มีวิธีง่ายๆ ในการเพิ่มคีย์เพิ่มเติมโดยการยืมคีย์ที่คุณไม่ได้ใช้บ่อย

3 วิธีในการล้างบันทึกเหตุการณ์ทั้งหมดใน Windows 10 อย่างรวดเร็ว

3 วิธีในการล้างบันทึกเหตุการณ์ทั้งหมดใน Windows 10 อย่างรวดเร็ว

บางครั้งคุณอาจต้องลบบันทึกเหตุการณ์เก่าทั้งหมดพร้อมกัน ในคู่มือนี้ Quantrimang.com จะแสดง 3 วิธีในการลบบันทึกเหตุการณ์ทั้งหมดใน Windows 10 Event Viewer อย่างรวดเร็ว

วิธี IP ปลอมช่วยให้คุณเข้าถึงโดยไม่ระบุชื่อ

วิธี IP ปลอมช่วยให้คุณเข้าถึงโดยไม่ระบุชื่อ

ในบทความก่อนหน้านี้หลายบทความ เราได้กล่าวไว้ว่าการไม่เปิดเผยตัวตนทางออนไลน์เป็นสิ่งสำคัญอย่างยิ่ง ข้อมูลส่วนตัวรั่วไหลทุกปี ทำให้การรักษาความปลอดภัยออนไลน์มีความจำเป็นมากขึ้น นั่นคือเหตุผลที่เราควรใช้ที่อยู่ IP เสมือน ด้านล่างนี้เราจะเรียนรู้เกี่ยวกับวิธีการสร้าง IP ปลอม!

วิธีสร้างโหมดพื้นหลังโปร่งใสบน Windows 10

วิธีสร้างโหมดพื้นหลังโปร่งใสบน Windows 10

WindowTop เป็นเครื่องมือที่มีความสามารถในการหรี่หน้าต่างแอปพลิเคชันและโปรแกรมทั้งหมดที่ทำงานบนคอมพิวเตอร์ Windows 10 หรือคุณสามารถใช้อินเทอร์เฟซพื้นหลังสีเข้มบน windows ได้

วิธีปิดแถบภาษาบนทาสก์บาร์ของ Windows 8

วิธีปิดแถบภาษาบนทาสก์บาร์ของ Windows 8

แถบภาษาบน Windows 8 เป็นแถบเครื่องมือภาษาขนาดเล็กที่ออกแบบมาเพื่อแสดงบนหน้าจอเดสก์ท็อปโดยอัตโนมัติ อย่างไรก็ตาม หลายๆ คนต้องการซ่อนแถบภาษานี้บนทาสก์บาร์

วิธีการตั้งค่า WEP, WPA, WPA2 สำหรับเราเตอร์ Linksys

วิธีการตั้งค่า WEP, WPA, WPA2 สำหรับเราเตอร์ Linksys

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

เคล็ดลับในการปรับความเร็วการเชื่อมต่ออินเทอร์เน็ตจาก Linksys ให้เหมาะสม

เคล็ดลับในการปรับความเร็วการเชื่อมต่ออินเทอร์เน็ตจาก Linksys ให้เหมาะสม

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

เคล็ดลับในการแสดงการแจ้งเตือนบนหน้าจอเข้าสู่ระบบ Windows 10

เคล็ดลับในการแสดงการแจ้งเตือนบนหน้าจอเข้าสู่ระบบ Windows 10

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