Bước tới nội dung

AutoHotkey

Bách khoa toàn thư mở Wikipedia
AutoHotkey
Phát triển bởiChris Mallett, Steve Gray
Phiên bản ổn định
1.1.28.02 / 7 tháng 4 năm 2018; 6 năm trước (2018-04-07)[1]
Bản xem thử
2.0-a094 / 22 tháng 4 năm 2018; 6 năm trước (2018-04-22)[2]
Kho mã nguồn
Hệ điều hànhMicrosoft Windows
Thể loạiNgôn ngữ lập trình kịch bản Tự động hóa GUI tiện ích
Giấy phépGPL
Websiteautohotkey.com

AutoHotkey là một ngôn ngữ kịch bản tùy biến miễn phí, nguồn mở cho Microsoft Windows, bàn đầu nhằm cung cấp các phím tắt hay phím nóng dễ dàng, tạo macro nhanh và tự động hóa phần mềm để cho phép người dùng máy tính ở cấp độ nào cũng có thể tự động hóa các tác vụ lặp lại ở bất kì ứng dụng Windows nào. Giao diện ngườ dùng cũng có thể dễ dàng được mở rộng hay sửa đổi bởi AutoHotkey (ví dụ, ghi đè lệnh phím Control mặc định của Windows bằng phím tương tự của Emacs).[3] Cài đặt AutoHotkey bao gồm tập tin giúp đỡ của nó với phiên bản luôn được cập nhật trên web.[4]

Tính năng

[sửa | sửa mã nguồn]

Các tác vụ chính của AutoHotkey gồm:

  • Ánh xạ lại bàn phim, ví dụ như từ QWERTY sang Dvorak hoặc các bố cục bàn phím thay thế khác.
  • Sử dụng phím tắt để điền các tên tập tin hay các cụm từ khác hay dùng.
  • Điều khiển con trỏ chuột với bàn phim hay joystick.
  • Mở chương trình, tài liệu, và website với những phím bấm đơn giảm.
  • Thêm một chữ kí vào e-mail, diễn đàn trực tuyến...
  • Giám sát một hệ thống và tự động tắt các chương trình không cần thiết.
  • Lên lịch cho một nhắc nhở tự động, quét hệ thống, hay sao lưu.
  • Tự động hóa các tác vụ lặp đi lặp lại trong các trò chơi trực tuyến.
  • Tự động hóa các tác vụ lặp đi lặp lại trong Microsoft Excel.
  • Tự động điền vào biểu mẫu cho cuộc thi và quà tặng (ví dụ, nó có thể tự động gõ tên, địa chỉ... của bạn).
  • Kiểm tra mã nhanh trước khi hiện thực nó trong ngôn ngữ lập trình khác (vốn tốn thời gian hơn).

Lịch sử

[sửa | sửa mã nguồn]

Phiên bản beta công khai đầu tiên của AutoHotkey được phát hành vào ngày 10 tháng 11 năm 2003[5] sau đề xuất của tác giả Chris Mallett nhằm tích hợp sự hỗ trợ phím tắt vào trong AutoIt v2 nhưng thất bại trong việc nhận được phản hồi từ cộng đồng AutoIt.[6][7] Vì vậy tác giả bắt đầu chương trình riêng của mình từ đầu dựa trên cú pháp của AutoIt v2 và sử dụng v3 cho một số lệnh và trình biên dịch.[8] Sau đó, AutoIt v3 chuyển từ giấy phép GPL sang mã nguồn đóng bởi vì "những dự án khác liên tục lấy mã nguồn của AutoIt" và "xây dựng lên thành đối thủ cạnh tranh."[9]

Năm 2010, AutoHotkey v1.1 (trước đây gọi là AutoHotkey_L) trở thành nền tảng cho sự phát triển liên tục của AutoHotkey.[10] Một cổng khác của chương trình là AutoHotkey.dll.[11]

Kịch bản sau sẽ hoán đổi phím Control và Alt.

LCtrl::Alt
LAlt::Ctrl

Kịch bản sau sẽ cho phép người dùng tìm kiếm một từ hay cụm từ cụ thể bằng Google. Sau khi sao chép văn bản từ bất kì ứng dụng nào vào Clipboard, nhấn phím nóng cấu hình ⊞ Win+g sẽ mở trình duyệt web mặc định của người dùng và thực hiện việc tìm kiếm.

#g:: ; Win+g
   Run http://www.google.com/search?q=%clipboard%
Return

Sau đây là một ví dụ về kịch bản cần thiết để tạo ra chuỗi nóng "afaik," được tự động thay thế bởi "as far as I know":

::afaik::as far as I know

Còn sau đây là một ví dụ về một hàm đơn giản trong AutoHotkey. Khi một URL được sao chép vào Clipboard, phím tắt Alt+x sẽ kiểm tra URL đó cho bất kì/tất cả dấu ngoặc đơn và thay thế chúng với các kí tự thay thế trước khi dán URL từ Clipboard:

!x:: ; Alt+x
   URLReplace()
   Send ^v ; Ctrl+v
Return

URLReplace() {
   StringReplace, Clipboard, Clipboard, (, `%28, All
   StringReplace, Clipboard, Clipboard,), `%29, All
}

Trong ví dụ này, một khi nội dung của tên người dùng hay liên kết Địa chỉ IP được sao chép từ bất cứ website nào của Wikipedia vào Clipboard (sử dụng Firefox), kịch bản sau cho phép người dùng thực thi hàm CopyUser trong nội dung Clipboard và lưu nó vào trong một biến được chỉ định bằng phím nóng Ctrl+⇧ Shift+W hay phím nóng Ctrl+⇧ Shift+E. Phím nóng Ctrl+⇧ Shift+R tận dụng các giá trị kết quả để tạo ra bản tóm tắt kết quả chỉnh sửa.

^+w::last:= CopyUser() ; Ctrl+Shift+w
^+e::edit:= CopyUser() ; Ctrl+Shift+e

CopyUser() {
   Clipboard =
   StringReplace, Clipboard, Clipboard, http://en.wikipedia.org/
   StringReplace, Clipboard, Clipboard, wiki/
   StringReplace, Clipboard, Clipboard, w/index.php?title=
   StringReplace, Clipboard, Clipboard, Special:Contributions&target=
   StringReplace, Clipboard, Clipboard, User:
   StringReplace, Clipboard, Clipboard, &action=edit
   StringReplace, Clipboard, Clipboard, _, %A_Space%, All
   Return, Clipboard
}

; Ctrl+Shift+r
^+r::Send revert edits by [[Special:Contributions/%edit%|%edit%]] to last version by %last%

Cộng đồng

[sửa | sửa mã nguồn]

Diễn đàn cộng đồng trực tuyến của AutoHotkey có khoảng 22.000 người dùng đăng kí và khoảng 186.000 bài viết vào thời điểm tháng 3 năm 2018.[cần dẫn nguồn]

Tính năng do người dùng đóng góp

[sửa | sửa mã nguồn]

Các thư viện mở rộng/interops/inline script có sẵn để sử dụng với/từ các ngôn ngữ lập trình khác:

Phần mềm ác ý

[sửa | sửa mã nguồn]

Trong khi AutoHotkey được sử dụng để tạo nên phần mềm tự chứa để phân phối, phần mềm đó phải bao gồm một phần của chính AutoHotkey để nó hiểu được và thực thi được kịch bản của AutoHotkey; nó là một ngôn ngữ thông dịch. Chắc chắn, một số phần mềm ác ý được viết bằng cách sử dụng AutoHotkey.[18]

Tham khảo

[sửa | sửa mã nguồn]
  1. ^ “AutoHotkey Downloads”. Bản gốc lưu trữ ngày 23 tháng 1 năm 2014. Truy cập ngày 5 tháng 5 năm 2018.
  2. ^ “AutoHotkey v2 Downloads (sorted by date)”.
  3. ^ Contact Erica Sadun: Comment (ngày 19 tháng 8 năm 2005). “Ericasadun 2005 Life Hacker”. Lifehacker.com. Bản gốc lưu trữ ngày 24 tháng 10 năm 2005. Truy cập ngày 2 tháng 12 năm 2011.
  4. ^ “AutoHotkey”. Bản gốc lưu trữ ngày 15 tháng 3 năm 2015. Truy cập 8 tháng 5 năm 2018.
  5. ^ “AutoHotkey Changelog for Years 2003-2004”. Autohotkey.com. Bản gốc lưu trữ ngày 4 tháng 11 năm 2011. Truy cập ngày 2 tháng 12 năm 2011.
  6. ^ “Author Chris Mallett's post on the AutoHotkey Forums”. Autohotkey.com. Truy cập ngày 2 tháng 12 năm 2011.
  7. ^ “An AutoIt / AutoHotkey nonfunctional comparison”. Paperlined.org. Truy cập ngày 2 tháng 12 năm 2011.
  8. ^ “Author Chris Mallett's post on the AutoHotkey Forums”. Autohotkey.com. Truy cập ngày 2 tháng 12 năm 2011.
  9. ^ “Licensing Opinions - AutoIt Forums”. Autoitscript.com. Truy cập ngày 2 tháng 12 năm 2011.
  10. ^ “Forum post by Chris, announcing AutoHotkey_L now main platform”. Autohotkey.com. Truy cập ngày 2 tháng 12 năm 2011.
  11. ^ “AutoHotekey.dll Module”. github.io. Truy cập ngày 13 tháng 5 năm 2017.
  12. ^ Framework
  13. ^ LibLua
  14. ^ Lisp on win32
  15. ^ Embeddable Common Lisp
  16. ^ Windows Scripting Host
  17. ^ Embedded machine code
  18. ^ Research, Cybereason Nocturnus. “Fauxpersky: CredStealer malware written in AutoHotKey masquerades as Kaspersky Antivirus, spreading through infecting USB drives”. Truy cập ngày 29 tháng 3 năm 2018.

Liên kết ngoài

[sửa | sửa mã nguồn]