AutoHotkey 是 Windows 平台最强大的自动化脚本语言。本页详解它能做什么、怎么用、和其它工具比强在哪。
$ download v2.0.26AHK 最出名的能力:把任意快捷键组合绑定成任何动作。语法极简:
^!a::MsgBox("你好") ; Ctrl+Alt+A
#F1::Run("chrome.exe") ; Win+F1
!Space::Send("^c") ; Alt+空格 = Ctrl+C
支持组合键、修饰键(Ctrl/Alt/Shift/Win)、鼠标键、以及"上下文相关热键"(只在某个软件里生效)。
敲一个短代号,自动扩展成长文本。适合邮箱、签名、常用短语、代码片段:
::btw::by the way ::/mail::[email protected] :*:@date@::{Send %A_YYYY%-%A_MM%-%A_DD%}
模拟键盘按键或组合键:
Send("Hello World") ; 输入文本
Send("{Ctrl down}c{Ctrl up}") ; 模拟 Ctrl+C
Send("{F5}") ; 按 F5
MouseMove、MouseClick、Click 系列函数控制鼠标:移动到坐标、点击、拖拽、滚轮。适合游戏宏、UI 测试、自动化操作。
WinActivate、WinMove、WinClose、WinWait 等函数可以精确控制 Windows 窗口:激活、移动、大小、关闭、等待窗口出现。可以按窗口标题、类名、进程名匹配。
ControlSend / ControlClick / ControlGetText 可以直接向 Windows 控件(按钮、输入框、复选框)发送消息,比模拟鼠标点击更稳定,是 UI 自动化的核心手段。
用 A_Clipboard 读写剪贴板,配合字符串函数做文本清洗、格式转换、批量处理。
Loop Files, "*.jpg"
FileMove(A_LoopFileName, "backup\" A_LoopFileName)
; 批量把 jpg 文件移动到 backup 文件夹
FileRead、FileAppend、FileDelete、FileMove、DirCreate 等函数处理文件;Loop 遍历文件夹。
用几十行代码就能做出带按钮、输入框、下拉菜单、图片的窗口小程序。适合给自己或团队做小工具:
myGui := Gui()
myGui.Add("Text",, "你的名字:")
myGui.Add("Edit", "vName w200")
myGui.Add("Button", "Default", "确定").OnEvent("Click", (*) => MsgBox("Hello"))
myGui.Show()
RegExMatch、RegExReplace 支持完整的正则表达式,做文本查找替换、日志分析、数据提取。
SetTimer 可以让脚本定时执行任务:每 10 分钟检查一次邮箱、每小时保存备份、每天 9 点弹提醒。
AutoHotkey 完全开源(GPLv2),由 AutoHotkey Foundation 及全球社区维护。官网 autohotkey.com 有完整英文文档;国内 AHK 社区(如 AHKCN 论坛)也非常活跃,能找到大量现成脚本。