Mấy hôm trước mình tình cờ đọc được về AutoHotKey (thường gọi tắt là AHK) khi đang tìm cách tối ưu vài thao tác lặp đi lặp lại trên Windows. Đây là một ngôn ngữ scripting mã nguồn mở, chuyên để tạo phím tắt, macro và tự động hoá các tác vụ trên máy — nghe thì có vẻ giống mấy tool remap phím thông thường, nhưng khi tìm hiểu sâu hơn mình mới thấy nó mạnh hơn nhiều so với tưởng tượng ban đầu.

Điểm khác biệt lớn nhất so với các công cụ macro thông thường là AHK không chỉ "ghi lại thao tác rồi phát lại", mà là một ngôn ngữ lập trình thật sự — có biến, điều kiện, vòng lặp, có thể thao tác cửa sổ, đọc/ghi clipboard, thậm chí gửi request HTTP. Điều đó nghĩa là mình có thể viết những automation khá phức tạp: ví dụ chỉ cần một hotkey để mở đúng ứng dụng, đợi cửa sổ hiện lên, rồi tự gõ sẵn một đoạn văn bản.

Cái mình thích nhất khi mới học là hotstring — kiểu gõ tắt văn bản. Chỉ cần vài dòng code đơn giản như:

::btw::By the way,

^j::Send("Cảm ơn bạn đã hỗ trợ!")

là mình đã có ngay một đoạn text tự động gõ ra mỗi khi nhập tắt, cực kỳ tiện cho việc trả lời email hay chat lặp đi lặp lại. Ngoài ra, remap phím cũng đơn giản không kém — ví dụ đổi phím Caps Lock (vốn ít dùng) thành Ctrl, giúp tay đỡ phải với xa khi bấm tổ hợp phím.

Một điều mình để ý là AHK khác PowerToys ở chỗ: PowerToys phù hợp cho các tác vụ remap đơn giản, còn AHK mạnh hơn hẳn khi cần logic có điều kiện hoặc automation nhiều bước, tùy theo từng ứng dụng đang mở. Với một người mới bắt đầu như mình, việc học cú pháp cũng không quá khó vì cộng đồng AHK rất lớn, hầu như thao tác nào muốn tự động hoá cũng có thể tìm được ví dụ mẫu để tham khảo.

Tổng kết

AutoHotKey là kiểu công cụ mà càng tìm hiểu càng thấy "tại sao mình không biết đến nó sớm hơn". Chỉ với vài dòng script đơn giản, mình đã tiết kiệm được kha khá thao tác lặp lại mỗi ngày. Đây chắc chắn là công cụ mình sẽ tiếp tục đào sâu, và có thể sẽ chia sẻ thêm một số script hữu ích hơn trong các bài blog tiếp theo.