一、脚本基础
- 文件格式:脚本以
.ahk为后缀,本质是文本文件,可直接用记事本编辑,双击即可运行(需安装 AutoHotkey 环境)。 - 注释:以
;开头,单行注释。
示例:; 这是一条注释,不会被执行
二、变量
- 定义与赋值:无需声明,直接使用。
- 普通赋值(文本或数字):
变量名 = 值
示例:
- 普通赋值(文本或数字):
name = AutoHotkey ; 文本变量
age = 10 ; 数字变量- 表达式赋值(支持运算、函数调用):
变量名 := 表达式
示例:
sum := 2 + 3 ; sum 等于 5
len := StrLen("test") ; len 等于 4(调用内置函数)- 变量名规则:由字母、数字、下划线组成,区分大小写(默认不严格,但建议规范使用)。
三、核心:热键(Hotkey)
绑定按键/组合键到操作,格式:按键组合::执行命令。
修饰符(组合键基础):
| 符号 | 含义 | 示例 |
|---|---|---|
^ | Ctrl 键 | ^s = Ctrl+S |
! | Alt 键 | !a = Alt+A |
+ | Shift 键 | +F1 = Shift+F1 |
# | Win 键 | #d = Win+D |
示例:
^!s:: ; 绑定 Ctrl+Alt+S
MsgBox, 按下了 Ctrl+Alt+S ; 弹出消息框
return ; 结束热键逻辑(可选,复杂逻辑建议加)
F1::Run, notepad.exe ; 按 F1 打开记事本四、热字符串(Hotstring)
自动替换文本(输入缩写触发),格式:::缩写::替换内容。
- 基础示例:
::btw::by the way ; 输入 btw 后按空格/回车,替换为 by the way
::ahk::AutoHotkey ; 输入 ahk 触发替换- 常用选项(前缀修饰):
:o::仅替换一次(不自动触发后续)
示例::o:hi::Hello!:c::大小写敏感
示例::c:Ahk::AutoHotkey(仅匹配Ahk)
五、Send 命令(发送按键/文本)
模拟键盘输入,基础格式:Send 内容。
- 发送文本:
Send, Hello World ; 输入 Hello World- 发送特殊键:用
{}包裹按键
Send, {Enter} ; 发送回车键
Send, {Tab} ; 发送 Tab 键
Send, {Backspace 3} ; 连续按 3 次退格键
Send, ^s ; 发送 Ctrl+S(保存快捷键)- 高效变体:
SendInput(速度更快,推荐优先使用)
SendInput, This is faster ; 更高效的输入六、流程控制
1. 条件判断(if-else)
格式:
if (条件) {
; 条件为真时执行
} else if (另一个条件) {
; 另一条件为真时执行
} else {
; 所有条件为假时执行
}示例:
num = 5
if (num > 3) {
MsgBox, 数字大于3
} else {
MsgBox, 数字小于等于3
}2. 循环(Loop/while)
**Loop**:重复执行指定次数或无限循环
Loop 3 { ; 执行 3 次
MsgBox, 第 %A_Index% 次循环 ; A_Index 是内置变量,记录当前循环次数
}
Loop { ; 无限循环(需配合 break 退出)
if (条件)
break ; 退出循环
}**while**:当条件为真时循环
count = 0
while (count < 3) {
count := count + 1
MsgBox, 计数:%count%
}七、函数
1. 内置函数
AHK 自带大量实用函数:
MsgBox, 标题, 内容:弹出消息框(简单用法可省略标题)Run, 程序路径:启动程序(如Run, notepad.exe打开记事本)StrLen(文本):返回文本长度(如StrLen("test")结果为 4)
2. 自定义函数
格式:
函数名(参数1, 参数2, ...) {
; 函数逻辑
return 返回值 ; 可选
}示例:
Add(a, b) {
return a + b
}
; 调用函数
result := Add(2, 3)
MsgBox, 结果:%result% ; 显示 5
八、其他常用命令
| 命令格式 | 功能说明 | 示例 |
|---|---|---|
WinActivate, 窗口标题 | 激活指定窗口 | WinActivate, 文档 - 记事本 |
WinClose, 窗口标题 | 关闭指定窗口 | WinClose, Untitled - Notepad |
Sleep, 时间(毫秒) | 暂停执行 | Sleep, 1000(暂停 1 秒) |
ExitApp | 退出当前脚本 | - |
| 没有啦 |
