Trong nhiều năm, tôi đã dành thời gian tạo ra vô số các kịch bản PowerShell để chạy trên máy tính Windows của mình. Tuy nhiên, một điểm hạn chế lớn là phần lớn trong số chúng đòi hỏi phải được kích hoạt thủ công. Kể từ khi chuyển sang sử dụng AutoHotkey (phiên bản 2), mọi thứ đã thay đổi hoàn toàn. Tôi đã có thể dễ dàng tái tạo lại các script cũ và gán chúng vào các tổ hợp phím tắt, biến chúng thành những tính năng tích hợp sẵn của Windows mà dường như Microsoft đã “quên” đề cập. AutoHotkey không chỉ là một công cụ giúp tự động hóa mà còn là một “trợ lý” đắc lực, biến những tác vụ lặp đi lặp lại hàng ngày trở nên mượt mà và hiệu quả hơn bao giờ hết. Đây thực sự là một giải pháp hữu ích để nâng cao năng suất làm việc và tối ưu hóa trải nghiệm sử dụng máy tính của bạn.
10. Menu Khởi Chạy Ứng Dụng Nhanh Cá Nhân
Các ứng dụng như Notepad, Calculator hay Paint thường không xuất hiện trên màn hình nền của tôi vì chúng không phải là những công cụ quan trọng hàng đầu. Thế nhưng, đôi lúc tôi vẫn cần tìm đến chúng một cách nhanh chóng để thực hiện các tác vụ đơn giản. Thay vì phải mất công tìm kiếm trong menu Start hay trên các biểu tượng desktop, tôi đã tạo ra một menu tùy chỉnh đặc biệt. Menu này sẽ xuất hiện ngay lập tức chỉ với tổ hợp phím Windows Key + M, nhờ vào đoạn mã AutoHotkey dưới đây.
Menu ứng dụng tùy chỉnh được tạo bằng AutoHotkey để khởi chạy nhanh
#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()
}
Với thiết lập hiện tại, menu của tôi bao gồm Calculator, Sticky Notes, MS Paint và Notepad. Tuy nhiên, bạn hoàn toàn có thể dễ dàng sửa đổi đoạn script này để thêm vào những ứng dụng yêu thích của riêng mình. Chẳng hạn, muốn thêm Notion? Chỉ cần sao chép một trong các dòng hiện có, thay đổi tên thành “Notion”, tìm tệp .exe của ứng dụng Notion, sao chép đường dẫn của nó và dán vào trong dấu ngoặc đơn của hàm Run.
Tôi thực sự yêu 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 dài dằng dặc hay cố gắng nhớ xem mình đã ghim ứng dụng ít dùng đó ở đâu. Tôi sử dụng tính năng này nhiều lần mỗi ngày và nó giúp tôi tiết kiệm được rất nhiều “khoảnh khắc cản trở” nhỏ nhặt, mà tổng cộng lại là một lượng thời gian đáng kể. Đây là một thủ thuật AutoHotkey đơn giản nhưng cực kỳ hiệu quả để tăng cường năng suất.
9. Cuộn Ngang Chuẩn Hóa Trên Mọi Ứng Dụng
Thao tác giữ phím Shift + Con lăn chuột để cuộn ngang không hoạt động nhất quán trên tất cả các ứng dụng mà tôi sử dụng. Đáng tiếc là tôi thường xuyên dùng tính năng này, đặc biệt khi xem các đoạn mã lập trình hoặc thiết kế trong CAD. Vì vậy, tôi đã tự tạo một script AutoHotkey riêng để đảm bảo cuộn ngang hoạt động trơn tru trong bất kỳ ứng dụng nào.
Bạn có thể tạo một script với nội dung sau để có phiên bản của riêng mình:
#Requires AutoHotkey v2.0
#HotIf GetKeyState("Shift", "P")
WheelUp::Send("{WheelLeft}")
WheelDown::Send("{WheelRight}")
#HotIf
Bằng cách giữ Shift và cuộn con lăn chuột, tôi có thể cuộn sang trái và phải thay vì lên hoặc xuống. Tính năng này hoạt động trong mọi chương trình hỗ trợ cuộn ngang, từ các bảng tính Excel, trình chỉnh sửa ảnh cho đến trình duyệt web với nội dung rộng. Đây là một cải tiến nhỏ nhưng mang lại sự nhất quán và tiện lợi đáng kể cho những ai thường xuyên làm việc với các nội dung cần cuộn ngang.
8. Truy Cập Thư Mục Bất Kỳ Ngay Lập Tức
Tôi có thói quen tổ chức các tệp của mình bằng cách sử dụ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 vào một thư mục dự án cụ thể phải 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 AutoHotkey để gán tổ hợp phím Ctrl + Alt + D để mở ngay lập tức một thư mục dự án được chỉ định.
Đây là script bạn có thể sử dụng:
#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 riêng bạn (đặt trong dấu ngoặc kép) ngay sau 'explorer.exe'
. Tất nhiên, bạn cũng có thể thay đổi tổ hợp phím tắt bằng cách sử dụng các ký hiệu sửa đổi phím nóng của AutoHotkey.
Điều tôi thích ở cách tiếp cận này là khả năng tùy chỉnh cao khi bạn đã nắm được quy tắc. Tôi đã tạo nhiều biến thể để mở thư mục Desktop, Documents, và thậm chí cả các thư mục dự án cụ thể mà tôi đang làm việc. Đây là một thủ thuật AutoHotkey đơn giản nhưng cực kỳ hữu ích cho việc quản lý và truy cập file nhanh chóng.
7. Gõ Tắt Văn Bản Nhanh Chóng Cho Các Cụm Từ Hàng Ngày
Tôi rất thích ý tưởng sử dụng các 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 một script AutoHotkey, cho phép tôi sử dụng các phím tắt cho những cụm từ thông dụng mà tôi thường xuyên sử dụng. Bạn có thể tạo script này để tự mình trải nghiệm:
#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 bởi một phím Space (hoặc Enter), nó sẽ ngay lập tức mở rộng thành “Good morning”. Tương tự, “ty” sẽ mở rộng thành “Thank you” và “brb” thành “Be right back”. Tính năng này hoạt động trong bất kỳ ứng dụng nào bạn có thể nhập liệu và tôi thấy nó đặc biệt hữu ích khi phản hồ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 mang lại sự trang trọng hơn cho giao tiếp hàng ngày của tôi và giúp các phản hồi của tôi nhất quán. Mặc dù có nhiều cách khác để chèn các ký tự đặc biệt bằng phím tắt Windows, tôi thấy rằng AutoHotkey cung cấp khả năng tùy chỉnh tốt nhất.
6. Điều Khiển Âm Lượng Tùy Chỉnh Cho Bàn Phím
Điều khiển âm lượng Windows bằng phím tắt tùy chỉnh AutoHotkey trên bàn phím
Các điều khiển âm lượng của Windows luôn khiến tôi cảm thấy bất tiện. Bạn phải nhấp vào biểu tượng loa nhỏ xíu trên khay hệ thống hoặc tìm kiếm các nút âm lượng trên bàn phím – vốn rất khó tìm, đặ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ì ngón tay của tôi luôn đặt ở hàng phím chính, việc gán điều khiển âm lượng vào CTRL + Dấu phẩy hoặc CTRL + Dấu chấm để điều chỉnh âm lượng, và CTRL + M để tắt/bật tiếng là hợp lý. Đây là script mà tôi đã sử dụng:
#Requires AutoHotkey v2.0
#SingleInstance Force
^,::Send("{Volume_Down}") ; Ctrl + ,
^.::Send("{Volume_Up}") ; Ctrl + .
^m::Send("{Volume_Mute}") ; Ctrl + M
Tôi đã chọn các tổ hợp phím này vì chúng không xung đột với các phím tắt phổ biến trong hầu hết các chương trình và luôn nằm trong tầm với của các ngón tay. Khi tôi đang trong một cuộc 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 hay phải loay hoay với chuột.
Mặc dù có nhiều cách để thiết lập các điều khiển âm lượng tùy chỉnh trên bàn phím của bạn, tôi vẫn thích sử dụng AutoHotkey hơn cả. 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 mọi thiết bị âm thanh và tất cả các cài đặt âm thanh Windows của bạn. Thậm chí, nó 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 + Cộng và Ctrl + Trừ sẽ 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 thay thế.
5. Canh Giữa Con Trỏ Chuột Ngay Lập Tức
Điều này nghe có vẻ đơn giản, nhưng lại cực kỳ hữu ích, đặc biệt nếu bạn làm việc với thiết lập nhiều màn hình hoặc một màn hình siêu rộng duy nhất. Phím nóng này sẽ căn giữa con trỏ chuột của bạn khi bạn nhấn Ctrl + Alt + C. Ban đầu tôi tạo nó để chơi game, nhưng sau đó tôi nhận thấy mình sử dụng nó suốt cả ngày. Dưới đâ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 sẽ tìm điểm trung tâm chính xác của cửa sổ đang hoạt động và di chuyển con trỏ 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ổ đó nằm một phần ngoài màn hình. Tôi sử dụng tính năng 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 con chuột của tôi đang ở đâ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 này có thể thực hiện được với một sửa đổi nhỏ về vị trí.
4. 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 PDF, tệp nhạc cạnh các trình cài đặt ngẫu nhiên, mọi thứ chỉ đơn giản là được đổ vào một đống khổng lồ. Tôi đã cố gắng tự sắp xếp thủ công, nhưng ai có thời gian để sắp xếp tệp khi bạn đang bận làm việc thực sự?
Script phím nóng 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 đã tổ chức dựa trên loại tệp. Tôi nhấn F12 để bật nó lê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 đến 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:
#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 chưa 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ý các 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 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 loại 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ú thích nhỏ (tooltip) xuất hiện khi bạn bật hoặc tắt nó, nhưng ngoài ra nó chỉ âm thầm thực hiện 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 các bản tải xuống mới một cách nhanh chóng mà không cần liên tục quét và làm chậm máy tính của bạn.
3. Khởi Chạy Nhiều Ứng Dụng Cho Các Quy Trình Làm Việc Cụ Thể
Tôi rất thích sử dụng Virtual Desktops của Windows để sắp xếp các tác vụ khác nhau. Thật đáng tiếc là tính năng này không cho phép tự động mở các ứng dụng nhất định hoặc thay đổi ứng dụng cho từng 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 sắp xếp không gian làm việc. Đế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 tiết kiệm được gánh nặng tinh thần khi phải nhớ những chương trình nào tôi cần cho các dự án nhất định, và thời gian phải nhấp chuột để khởi chạy từng cái một.
Tôi đã tạo ra 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. Việc có những trình khởi chạy quy trình làm việc chỉ bằng một phím này loại bỏ sự cản trở khi bắt đầu các loại dự án khác nhau.
2. Giữ Các Cửa Sổ Quan Trọng Luôn Hiển Thị
Có rất nhiều lúc tôi muốn một cửa sổ nào đó 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 một cách dễ dàng để thực hiện đ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ổ đang hoạt động, và nó sẽ luôn nằm trên cùng của mọi thứ khác. Script sẽ hiển thị một chú thích 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 chiếu 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 mục đích nào khác, nhưng bạn có thể thay đổi nó thành một phím khác nếu muốn.
1. Ngăn Máy Tính Của Bạn Đi Vào Chế Độ Ngủ
Hộp thoại cài đặt thời gian hẹn giờ cho script chống ngủ của AutoHotkey
Đôi khi tôi tải xuống và chuyển các tệp lớ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 bản tải xuống thường bị gián đoạn do PC của tôi đi vào 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 AutoHotkey gán vào các phím Ctrl + Alt + Shift + S để bỏ qua hệ thống ngủ của máy tính một cách hiệu quả.
#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 này 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 ở trạng thái rảnh rỗi và đi vào chế độ ngủ. Gần đây tôi cũng đã mở rộng script để bao gồm một bộ hẹn giờ tự động tắt script sau một khoảng thời gian nhất định. Script cũng hiển thị một chú thích nhỏ khi bạn kích hoạt hoặc hủy kích hoạt, vì vậy bạn luôn biết liệu nó có đang chạy hay không.
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ó. 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. Khi bạn đã quen với cách chúng hoạt động, hãy 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. Đây là một công cụ mạnh mẽ giúp bạn làm chủ Windows và tối ưu hóa năng suất đáng kể. Hãy bắt đầu hành trình tự động hóa của bạn ngay hôm nay!