AHK 新手写脚本时,最容易把热键、热字符串、标签、函数混在一起。它们看起来都能“执行一段代码”,但触发方式、传参方式、复用方式完全不同。分清这 4 个概念,脚本结构会立刻清楚很多。

一、热键:按键触发

热键就是按下某个键或组合键时执行代码。比如 F1^c!q#n。它适合做快捷操作、开关脚本、触发自动化流程。

#Requires AutoHotkey v1.1
#NoEnv
#SingleInstance Force

F1::
MsgBox, 你按下了 F1
return

^!r::
Reload
return

热键的核心是“由键盘或鼠标事件触发”。它不是函数,不建议靠 Gosub 到处乱跳来复用热键内部代码。需要复用时,把核心逻辑写成函数,再由热键调用。

二、热字符串:输入文本触发

热字符串是输入某段文字后自动替换或执行代码。它适合做短语展开、地址输入、模板文本、常用命令。

::addr::北京市朝阳区示例路 66 号

::btw::by the way

:*:eml::
SendInput, user@example.com
return

热字符串和热键的区别是:热键看按键组合,热字符串看你输入了什么文字。写文章、客服回复、代码模板时,热字符串非常好用。

三、标签:给流程跳转用的入口

标签是以冒号结尾的名字,例如 DoWork:。它常配合 GosubGotoSetTimer、GUI 事件使用。标签是 AHK v1 里很常见的流程组织方式。

SetTimer, CheckTime, 1000
return

CheckTime:
FormatTime, now,, HH:mm:ss
ToolTip, %now%
return

标签适合接定时器、老式 GUI 事件、简单流程跳转。但新手要少用 Goto,否则脚本很快会变成一团线。能用函数表达的逻辑,优先写成函数。

四、函数:最适合复用和传参

函数可以接收参数、返回结果、被多处调用,是脚本变大的时候最应该掌握的组织方式。

F2::
result := Add(10, 20)
MsgBox, %result%
return

Add(a, b) {
    return a + b
}

函数的优势是边界清楚。你给它什么参数,它返回什么结果,容易测试,也容易维护。脚本越复杂,越应该把业务逻辑放进函数里。

五、四者怎么选

概念 触发方式 适合做什么
热键 按键或鼠标组合 快捷操作、启动流程、暂停脚本
热字符串 输入指定文本 文本替换、短语展开、模板输入
标签 Gosub、SetTimer、GUI事件 定时器、旧式事件入口、简单流程
函数 代码主动调用 复用逻辑、传参、返回结果

六、推荐写法

比较稳的结构是:热键只负责触发,函数负责真正做事,标签负责接定时器或必要的事件。

F3::
DoSearch("AutoHotkey")
return

SetTimer, AutoSave, 60000
return

AutoSave:
SaveLog("timer tick")
return

DoSearch(keyword) {
    Run, https://www.ahk66.com/?s=%keyword%
}

SaveLog(text) {
    FileAppend, %A_Now% - %text%`n, %A_ScriptDir%\log.txt
}

一句话记忆:热键管“什么时候按”,热字符串管“输入什么触发”,标签管“跳到哪里执行”,函数管“这件事怎么复用”。

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。