Trong thế giới công nghệ hiện đại, việc tối ưu hóa quy trình làm việc và tự động hóa các tác vụ lặp đi lặp lại không chỉ giúp tiết kiệm thời gian mà còn nâng cao đáng kể hiệu suất cá nhân. Đối với người dùng Windows tại Việt Nam, AutoHotkey (AHK) nổi lên như một công cụ mạnh mẽ, cho phép biến những thao tác thủ công phức tạp thành các lệnh tự động chỉ bằng một phím bấm. Từ việc khởi chạy ứng dụng, sắp xếp thư mục cho đến điều khiển âm lượng hay ngăn máy tính ngủ, các script AutoHotkey đều có thể được tùy chỉnh để đáp ứng nhu cầu riêng của mỗi người, biến chiếc PC của bạn thành một “trợ lý” thông minh đúng nghĩa.
Với kinh nghiệm nhiều năm tùy chỉnh máy tính, tôi đã biến những script PowerShell trước đây cần chạy thủ công thành các phím tắt tiện lợi nhờ AutoHotkey phiên bản 2, mang lại cảm giác như thể đây là các tính năng ẩn mà Microsoft đã “quên” tích hợp vào Windows. Dưới đây là 10 script AutoHotkey mạnh mẽ nhất mà bạn có thể áp dụng ngay hôm nay để cải thiện trải nghiệm sử dụng máy tính của mình.
1. Trình Khởi Chạy Ứng Dụng Nhanh Cá Nhân
Các ứng dụng như Notepad, Calculator hay Paint thường được tôi cất khỏi màn hình desktop vì không quá quan trọng. Tuy nhiên, đôi khi tôi lại cần tìm chúng để sử dụng nhanh. Thay vì phải lướt qua menu Start hay các biểu tượng trên desktop, tôi đã tạo một menu tùy chỉnh AutoHotkey xuất hiện ngay lập tức khi tôi nhấn tổ hợp phím Windows Key + M.
Thực đơn ứng dụng nhanh cá nhân trên Windows với AutoHotkey, hiển thị các ứng dụng thường dùng như Máy tính, Ghi chú và Paint.
Dưới đây là đoạn script bạn có thể sử dụng:
#Requires AutoHotkey v2.0
#m::{
MyMenu := Menu()
MyMenu.Add("Calculator", (*) => Run("calc.exe"))
MyMenu.Add("Sticky Notes", (*) => Run("explorer.exe shell:AppsFolderMicrosoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App"))
MyMenu.Add("Notepad", (*) => Run("notepad.exe"))
MyMenu.Add("Paint", (*) => Run("mspaint.exe"))
MyMenu.Show()
}
Tôi đã thiết lập menu này với Calculator, Sticky Notes, MS Paint và Notepad. Bạn hoàn toàn có thể dễ dàng sửa đổi script để thêm các ứng dụng yêu thích của mình. Muốn thêm Notion? Chỉ cần sao chép một dòng hiện có, đổi tên thành “Notion”, tìm tệp .exe của ứng dụng, sao chép đường dẫn và dán vào dấu ngoặc đơn của hàm Run
.
Tôi thực sự rất thích menu tùy chỉnh này. Chỉ cần nhấn Windows + M, nhấp vào ứng dụng muốn mở là xong. Không còn phải cuộn qua danh sách chương trình hoặc nhớ nơi tôi đã ghim ứng dụng ít dùng đó. Tôi sử dụng nó vài lần mỗi ngày và nó giúp tôi tiết kiệm được nhiều khoảnh khắc “ma sát” nhỏ tích lũy lại thành thời gian đáng kể.
2. Cuộn Ngang Nhất Quán Trong Mọi Ứng Dụng
Việc giữ phím Shift + Cuộn chuột để cuộn ngang không hoạt động với tất cả các ứng dụng mà tôi sử dụng. Đáng tiếc là tôi thường xuyên thực hiện hành động này, đặc biệt khi xem các đoạn mã hoặc thiết kế trong CAD. Vì vậy, tôi đã tự tạo một script để làm cho cuộn ngang hoạt động nhất quán với bất kỳ ứng dụng nào tôi đang dùng.
Hãy tạo một script với đoạn mã sau để tạo phiên bản của riêng bạn:
#Requires AutoHotkey v2.0
#HotIf GetKeyState("Shift", "P")
WheelUp::Send("{WheelLeft}")
WheelDown::Send("{WheelRight}")
#HotIf
Bằng cách giữ Shift và cuộn bánh xe chuột, tôi có thể cuộn trái và phải thay vì lên hoặc xuống. Điều này hoạt động trong bất kỳ chương trình nào hỗ trợ cuộn ngang, từ bảng tính Excel đến trình chỉnh sửa ảnh và trình duyệt web có nội dung rộng.
3. Truy Cập Thư Mục Tức Thì Với Phím Tắt
Tôi thường xuyên tổ chức các tệp của mình bằng các thư mục. Tuy nhiên, đôi khi tôi tạo quá nhiều thư mục con, khiến việc truy cập một thư mục dự án mất nhiều lần nhấp chuột. Sau đó, tôi nhận ra mình có thể dễ dàng tạo một script liên kết với Ctrl + ALT + D để ngay lập tức mở một thư mục dự án cụ thể.
Đây là script:
#Requires AutoHotkey v2.0
^!d::Run('explorer.exe "C:UsersjricmDownloads"')
Bạn có thể dễ dàng sửa đổi script này bằng cách thêm đường dẫn thư mục của bạn (có dấu ngoặc kép) ngay sau 'explorer.exe'
. Tất nhiên, bạn cũng có thể thay đổi các phím tắt bằng cách sử dụng các ký hiệu sửa đổi của AutoHotkey.
Điều tôi thích ở phương pháp này là khả năng tùy biến của nó khi bạn đã hiểu được quy luật. Tôi đã tạo các biến thể mở Desktop, thư mục Documents và thậm chí các thư mục dự án cụ thể mà tôi đang làm việc.
4. Mở Rộng Văn Bản Nhanh Cho Các Cụm Từ Thông Dụng
Tôi rất thích ý tưởng sử dụng mã Alt của Windows để dễ dàng và nhanh chóng chèn các ký tự đặc biệt. Tôi đã áp dụng cùng một cách tiếp cận với script AHK cho phép tôi sử dụng các phím tắt cho các cụm từ thông dụng mà tôi thường dùng. Tạo script này để tự mình thử:
#Requires AutoHotkey v2.0
#SingleInstance Force
::gm::Good morning
::ty::Thank you
::brb::Be right back
Với ví dụ này, bất cứ khi nào tôi gõ “gm” theo sau là một dấu cách (hoặc Enter), nó sẽ ngay lập tức mở rộng thành “Good morning”. Tương tự với “ty” mở rộng thành “Thank you” và “brb” thành “Be right back”. Điều này hoạt động trong bất kỳ ứng dụng nào bạn có thể gõ và tôi thấy nó đặc biệt hữu ích khi trả lời tin nhắn trong suốt cả ngày.
Nếu bạn muốn tùy chỉnh, chỉ cần thêm các từ viết tắt và cụm từ của riêng bạn theo cùng định dạng. Đây là một bổ sung nhỏ nhưng giúp giao tiếp hàng ngày của tôi có thêm chút tính trang trọng và giữ cho các câu trả lời của tôi nhất quán. Có nhiều cách khác để chèn các ký tự đặc biệt bằng phím tắt Windows, nhưng tôi thấy AutoHotkey cung cấp khả năng tùy chỉnh tốt nhất.
5. Điều Khiển Âm Lượng Bàn Phím Tùy Chỉnh
Minh họa điều chỉnh âm lượng máy tính bằng bàn phím thông qua AutoHotkey, phím tắt tùy chỉnh Ctrl + Dấu phẩy và Ctrl + Dấu chấm.
Các điều khiển âm lượng của Windows luôn khiến tôi cảm thấy khó sử dụng. Bạn phải nhấp vào biểu tượng loa nhỏ trong khay hệ thống hoặc tìm các nút âm lượng trên bàn phím, điều này khó tìm thấy, đặc biệt nếu bạn làm việc trong bóng tối như tôi. Tôi muốn một cái gì đó nhanh hơn và trực quan hơn.
Vì các ngón tay của tôi luôn dính vào hàng phím cơ bản, nên việc gán điều khiển âm lượng với CTRL + Dấu phẩy hoặc CTRL + Dấu chấm để điều chỉnh âm lượng, và CTRL + M để bật/tắt tiếng là hợp lý. Đây là script tôi đã sử dụng:
#Requires AutoHotkey v2.0
#SingleInstance Force
^,::Send("{Volume_Down}") ; Ctrl + < (comma)
^.::Send("{Volume_Up}") ; Ctrl + > (period)
^m::Send("{Volume_Mute}") ; Ctrl + M
Tôi đã chọn những tổ hợp phím này vì chúng không xung đột với các phím tắt thông dụng trong hầu hết các chương trình và chúng luôn trong tầm với của ngón tay. Khi tôi đang gọi video và âm thanh của ai đó quá lớn, tôi có thể nhanh chóng nhấn Ctrl + Dấu phẩy vài lần mà không làm gián đoạn công việc hoặc loay hoay với chuột.
Mặc dù có một số cách để thiết lập điều khiển âm lượng tùy chỉnh trên bàn phím của bạn, tôi thích sử dụng AutoHotkey hơn. Nó mô phỏng các tín hiệu mà các phím âm lượng chuyên dụng gửi đi, đảm bảo khả năng tương thích với bất kỳ thiết bị âm thanh nào và tất cả các cài đặt âm thanh Windows của bạn. Nó thậm chí còn hiển thị lớp phủ âm lượng giống hệt như khi bạn nhấn các nút âm lượng vật lý. Nếu bạn thích các tổ hợp phím khác, bạn có thể dễ dàng sửa đổi script. Có thể Ctrl + Plus và Ctrl + Minus cảm thấy tự nhiên hơn với bạn, hoặc có thể bạn muốn sử dụng các phím chức năng.
6. Di Chuyển Con Trỏ Chuột Vào Trung Tâm Ngay Lập Tức
Điều này nghe có vẻ đơn giản, nhưng nó lại cực kỳ hữu ích, đặc biệt nếu bạn làm việc với nhiều màn hình hoặc một màn hình siêu rộng. Phím tắt này sẽ di chuyển con trỏ chuột của bạn vào trung tâm khi bạn nhấn Ctrl + Alt + C. Ban đầu tôi tạo ra nó để chơi game, nhưng tôi đã thấy mình sử dụng nó suốt cả ngày. Đây là script bạn cần tạo:
#Requires AutoHotkey v2.0
^!c:: {
WinGetPos(&x, &y, &w, &h, "A")
MouseMove(x + w/2, y + h/2)
}
Script này tìm điểm chính giữa của cửa sổ đang hoạt động và di chuyển chuột đến đó ngay lập tức. Nó hoạt động với bất kỳ chương trình và kích thước cửa sổ nào, ngay cả khi cửa sổ bị lệch một phần khỏi màn hình. Tôi sử dụng điều này thường xuyên nhất khi chuyển đổi giữa các ứng dụng khác nhau và muốn nhanh chóng tập trung vào cửa sổ mới mà không cần phải suy nghĩ xem chuột của tôi đã kết thúc ở đâu.
Bạn có thể sửa đổi script này để căn giữa con trỏ trên toàn bộ màn hình thay vì chỉ cửa sổ đang hoạt động, hoặc tạo các biến thể di chuyển con trỏ đến các vị trí cụ thể như góc trên bên trái hoặc góc dưới bên phải. Một số người thích con trỏ của họ tự động di chuyển đến nút đóng trên Windows, điều mà bạn có thể thực hiện với một sửa đổi nhỏ về vị trí.
7. Tự Động Sắp Xếp Thư Mục Tải Xuống
![]() |
Trước khi sắp xếp |
---|---|
![]() |
Sau khi sắp xếp |
Thư mục Downloads của tôi từng là một mớ hỗn độn. Ảnh chụp màn hình lẫn lộn với các tệp PDF, tệp nhạc nằm cạnh các trình cài đặt ngẫu nhiên, mọi thứ chỉ bị đổ vào một đống lớn. Tôi đã cố gắng giữ mọi thứ ngăn nắp bằng tay, nhưng ai có thời gian để sắp xếp tệp khi bạn đang làm việc thực sự?
Script phím tắt này chạy ẩn và tự động sắp xếp các tệp tải xuống mới vào các thư mục được tổ chức dựa trên loại tệp. Tôi nhấn F12 để bật nó, và cứ sau năm giây, nó sẽ quét thư mục Downloads của bạn và di chuyển các tệp vào các thư mục con thích hợp. Các tệp PDF và tài liệu Word đi vào thư mục “Docs”, hình ảnh vào “Images”, tệp nhạc vào “Music”, v.v. Đây là cách tôi thiết lập nó:
#Requires AutoHotkey v2.0
downloads:="C:UsersjricmDownloads", interval:=5000
ext:=Map("pdf","Docs","docx","Docs","xlsx","Docs","txt","Text","jpg","Images","png","Images","mp3","Music","mp4","Videos","exe","Programs","zip","Archives")
F12:: {
static on:=false
on:=!on, SetTimer(MoveFiles, on?interval:0)
ToolTip("AutoSort: " (on?"ON":"OFF")), SetTimer(() => ToolTip(), -1500)
}
MoveFiles() {
Loop Files downloads "*.*", "F"
if ext.Has(e:=A_LoopFileExt) {
d:=downloads "" ext[e]
if !DirExist(d)
DirCreate(d)
try
FileMove(A_LoopFilePath, d "" A_LoopFileName, 1)
}
}
Script sẽ tự động tạo các thư mục này nếu chúng không tồn tại, vì vậy bạn không cần phải thiết lập bất cứ điều gì trước. Nó đủ thông minh để xử lý xung đột tệp. Nếu bạn tải xuống hai tệp có cùng tên, nó sẽ không ghi đè lên tệp hiện có.
Nếu bạn cũng muốn sử dụng script tôi đã cung cấp, trước tiên bạn sẽ phải thay đổi đường dẫn thư mục bên cạnh biến “downloads”. Bạn cũng có thể thay đổi và thêm các phần mở rộng tệp khác bằng cách thêm loại phần mở rộng vào biến “ext”.
Có một chú giải công cụ nhỏ xuất hiện khi bạn bật hoặc tắt nó, nhưng ngoài ra, nó chỉ âm thầm làm công việc của mình ở chế độ nền. Khoảng thời gian năm giây có nghĩa là nó bắt kịp các lượt tải xuống mới nhanh chóng mà không liên tục quét và làm chậm máy tính của bạn.
8. Khởi Chạy Nhiều Ứng Dụng Cho Quy Trình Làm Việc Cụ Thể
Tôi rất thích sử dụng Virtual Desktops của Windows để tổ chức các tác vụ khác nhau. Thật tiếc là nó không cho phép bạn tự động mở các ứng dụng nhất định hoặc thay đổi ứng dụng cho mỗi màn hình ảo. Để khắc phục, tôi đã sử dụng AutoHotkey để mở nhiều ứng dụng chỉ với một lần nhấn phím. Đây là script tôi sử dụng:
#Requires AutoHotkey v2.0
+1:: {
Run('"C:UsersjricmAppDataLocalProgramsMicrosoft VS CodeCode.exe"')
Run('"C:Program FilesJetBrainsDataGrip 2023.3.4bindatagrip64.exe"')
Run('"C:Program FilesDockerDockerDocker Desktop.exe"')
}
Bằng cách nhấn Shift + 1, script sẽ khởi chạy đồng thời các ứng dụng Visual Studio Code, DataGrip và Docker. Các ứng dụng này thường mất khá nhiều thời gian để tải (ngay cả khi không có script), vì vậy đây là cơ hội hoàn hảo để tôi đi pha cà phê hoặc tổ chức không gian làm việc của mình. Đến khi tôi sẵn sàng làm việc, cả ba chương trình đã mở và sẵn sàng. Điều này giúp tôi không phải ghi nhớ những chương trình nào tôi cần cho các dự án nhất định, và tiết kiệm thời gian nhấp chuột để khởi chạy từng chương trình.
Tôi đã tạo một số biến thể của script này cho các loại công việc khác nhau. Shift + 2 khởi chạy thiết lập viết lách của tôi với Notion, Google và Asana. Shift + 3 mở thiết lập thiết kế 3D của tôi, bao gồm Fusion 360, Creality Print và YouTube Music. Có những trình khởi chạy quy trình làm việc bằng một phím này giúp loại bỏ sự “ma sát” khi bắt đầu các loại dự án khác nhau.
9. Giữ Các Cửa Sổ Quan Trọng Luôn Hiển Thị
Có rất nhiều lần tôi muốn một cửa sổ luôn hiển thị, chẳng hạn như khi tôi đang theo dõi một hướng dẫn, kiểm tra ghi chú hoặc trò chuyện với mọi người. Windows không cung cấp cho bạn một cách dễ dàng để làm điều này. Vì vậy, tôi đã tạo một script cho mục đích cụ thể này.
#Requires AutoHotkey v2.0
ScrollLock:: {
try {
activeHwnd := WinGetID("A")
isTopMost := WinGetExStyle(activeHwnd) & 0x8 ; 0x8 = WS_EX_TOPMOST
WinSetAlwaysOnTop(!isTopMost, activeHwnd)
SetScrollLockState(isTopMost ? "Off" : "On")
ToolTip("Always On Top: " (isTopMost ? "OFF" : "ON"))
SetTimer(() => ToolTip(), -1000)
}
}
Với script trên, tôi chỉ cần nhấn phím Scroll Lock khi cửa sổ của tôi đang hoạt động, và nó sẽ luôn nằm trên cùng của mọi thứ khác. Script hiển thị một chú giải công cụ nhanh và bật hoặc tắt đèn Scroll Lock trên bàn phím của tôi, vì vậy tôi luôn biết cửa sổ nào đang được ghim. Tôi sử dụng thủ thuật này mọi lúc khi tôi cần một cửa sổ tham khảo tiện dụng mà không phải liên tục di chuyển mọi thứ hoặc chuyển đổi qua lại. Scroll Lock là một lựa chọn tốt vì hầu hết mọi người không sử dụng nó cho bất cứ điều gì khác, nhưng bạn có thể thay đổi nó thành một phím khác nếu muốn.
10. Ngăn Máy Tính Của Bạn Đi Vào Chế Độ Ngủ
Cửa sổ nhập liệu cho script chống ngủ máy tính của AutoHotkey, cho phép người dùng đặt thời gian (giờ) hoặc vô hạn.
Đôi khi tôi tải xuống và chuyển các tệp lớn hơn trên máy tính của mình. Toàn bộ quá trình có thể mất vài phút đến vài giờ. Vấn đề của tôi là các lượt tải xuống thường bị gián đoạn do PC của tôi chuyển sang chế độ ngủ sau vài phút. Điều này luôn khiến tôi thất vọng vì việc thử lại hoặc tiếp tục tải xuống thường thất bại. Để giải quyết vấn đề này, tôi đã tạo một script liên kết với các phím Ctrl + Alt + Shift + S của tôi để hiệu quả vượt qua hệ thống ngủ của máy tính.
#Requires AutoHotkey v2.0
#SingleInstance Force
global on := false, endTime := 0
^!+s::{
global on, endTime
if !on {
hrs := InputBox("Enter hours (0 = infinite):", "Anti-Sleep").Value
if !IsNumber(hrs) || hrs return MsgBox("Invalid input.")
endTime := hrs ? A_TickCount + hrs*3600000 : 0
SetTimer(AntiSleep, 300000), SetTimer(CheckEnd, 1000), on := true
ToolTip("Anti-Sleep: ON" (hrs ? "`n" hrs "h" : ""), 500, 500), SetTimer(() => ToolTip(), -1500)
} else {
; Required braces for multi-line else block
SetTimer(AntiSleep, 0), SetTimer(CheckEnd, 0), on := false
ToolTip("Anti-Sleep: OFF", 500, 500), SetTimer(() => ToolTip(), -1000)
}
}
AntiSleep() => (MouseMove(1,0,0,"R"), MouseMove(-1,0,0,"R"))
CheckEnd() => endTime && A_TickCount >= endTime && Send("^!+s")
^!+x::Send("^!+s")
Script hoạt động bằng cách di chuyển chuột một chút mỗi năm phút. Bằng cách này, PC của tôi không chuyển sang trạng thái nhàn rỗi và đi ngủ. Gần đây, tôi cũng đã mở rộng script để bao gồm một bộ hẹn giờ để tắt script sau một khoảng thời gian nhất định. Script cũng hiển thị một chú giải công cụ nhỏ khi bạn kích hoạt hoặc hủy kích hoạt nó, vì vậy bạn luôn biết liệu nó có đang chạy hay không.
Kết Luận
AutoHotkey thoạt nhìn có vẻ đáng sợ, nhưng bạn không cần phải hiểu từng dòng mã để hưởng lợi từ nó. Chỉ cần tải AutoHotkey và bắt đầu với một hoặc hai script giải quyết các vấn đề bạn thực sự gặp phải. Một khi bạn đã thoải mái với cách chúng hoạt động, dần dần thêm nhiều script hơn khi bạn khám phá những cách mới để cải thiện quy trình làm việc của mình. Việc tự động hóa tác vụ trên Windows thông qua AutoHotkey sẽ không chỉ giúp bạn tiết kiệm thời gian mà còn biến trải nghiệm sử dụng máy tính hàng ngày trở nên mượt mà và hiệu quả hơn rất nhiều. Hãy bắt đầu khám phá và tùy chỉnh Windows theo cách của riêng bạn ngay hôm nay!