一、脚本基础

  • 文件格式:脚本以 .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退出当前脚本-
没有啦  

 

2
0