第1章:AutoHotkey简介

1.1 什么是AutoHotkey?

AutoHotkey(以下简称AHK)是一款开源的脚本语言工具,主要用于Windows操作系统中的自动化操作。它可以通过编写脚本实现以下功能:

  • 自定义键盘快捷键(热键)。
  • 自动替换输入的文本(热字符串)。
  • 自动执行鼠标点击、移动等操作。
  • 与其他程序交互,自动化复杂任务。 AHK的脚本语言简单易学,适合初学者,同时功能强大,能够满足高级用户的需求。

1.2 AutoHotkey的安装与配置

要开始使用AutoHotkey,首先需要在计算机上安装它。以下是安装步骤:

  1. 下载AutoHotkey

    • 访问AutoHotkey的官方网站:https://www.autohotkey.com/
    • 在“Download”页面选择适合的版本(推荐下载最新稳定版)。
  2. 安装AutoHotkey

    • 双击下载的安装文件,按照提示完成安装。
    • 在安装过程中,可以选择是否将.ahk文件与AutoHotkey关联,建议勾选此选项。
  3. 验证安装

    • 安装完成后,按Win + R打开运行窗口,输入notepad打开记事本。
    • 在记事本中输入以下内容:
      MsgBox, Hello, AutoHotkey!
      
    • 将文件保存为Hello.ahk,然后双击运行该文件。如果弹出一个显示“Hello, AutoHotkey!”的对话框,说明安装成功。

1.3 AutoHotkey的基本功能与应用场景

AutoHotkey可以用于多种场景,以下是一些常见的应用示例:

  1. 自定义快捷键

    • 将Ctrl+Shift+S设置为保存所有打开的文档。
    • 使用Win+E快速启动常用的程序或文件夹。
  2. 文本替换

    • 输入btw时自动替换为by the way
    • 快速输入常用邮件签名或模板。
  3. 自动化操作

    • 自动点击某个按钮或执行一系列鼠标操作。
    • 批量处理文件或数据。
  4. 游戏辅助

    • 实现连点器或一键执行复杂操作。
    • 自定义游戏内的快捷键。
  5. 系统增强

    • 创建个性化的任务管理器或系统工具。
    • 优化Windows操作体验。

1.4 总结

本章介绍了AutoHotkey的基本概念、安装方法以及常见的应用场景。通过学习本章内容,你应该已经完成了AutoHotkey的安装,并对其功能有了初步了解。 在下一章中,我们将深入学习AutoHotkey的脚本编写基础,包括变量、运算符和常用的语法规则。

第2章:基础语法

本章将介绍AutoHotkey脚本编写的基础知识,包括脚本的基本结构、变量与数据类型、运算符与表达式,以及注释与脚本组织的技巧。


2.1 脚本的基本结构

AutoHotkey脚本是一个纯文本文件,文件扩展名为.ahk。脚本的基本结构如下:

  1. 注释 注释用于解释代码的功能,不会被执行。在AHK中,单行注释以分号;开头:

    ; 这是一个注释
    MsgBox, 这是一个弹窗
    
  2. 热键定义 热键是脚本的核心功能之一。定义热键的语法为:

    Hotkey::Action
    

    例如:

    ^j::MsgBox, 你按下了Ctrl+J
    
  3. 热字符串定义 热字符串用于在输入特定文本时触发操作。定义热字符串的语法为:

    ::Hotstring::Replacement
    

    例如:

    ::btw::by the way
    
  4. 脚本执行顺序 AHK脚本从上到下依次执行。如果没有定义热键或热字符串,脚本通常会立即执行。


2.2 变量与数据类型

变量用于存储数据,在AHK中可以存储文本、数字等类型的数据。

  1. 变量命名规则

    • 变量名以字母或下划线开头。
    • 变量名区分大小写。
    • 避免使用AHK的保留字作为变量名。
  2. 变量赋值 使用:==为变量赋值:

    MyVar := "Hello, AutoHotkey!"
    MsgBox, %MyVar%
    
  3. 数据类型

    • 字符串:用双引号括起来。
    • 数字:直接赋值。
    • 布尔值TrueFalse

    示例:

    MyText := "这是一个字符串"
    MyNumber := 123
    MyBool := True
    
  4. 变量的作用域 默认情况下,变量是全局的,可以在脚本的任何位置访问。如果需要局部变量,可以在函数中使用Local关键字。


2.3 运算符与表达式

运算符用于对变量和值进行操作,以下是常用的运算符:

  1. 算术运算符

    • 加法:+
    • 减法:-
    • 乘法:*
    • 除法:/
    • 取余:Mod

    示例:

    a := 10
    b := 3
    c := a * b ; c的值为30
    
  2. 比较运算符

    • 等于:=
    • 不等于:!=
    • 大于:>
    • 小于:<
    • 大于等于:>=
    • 小于等于:<=

    示例:

    if (a > b) {
       MsgBox, a大于b
    }
    
  3. 逻辑运算符

    • 与:&&
    • 或:||
    • 非:!

    示例:

    if (a > 0 && b < 10) {
       MsgBox, 条件成立
    }
    
  4. 字符串运算符

    • 连接:.
    • 包含:InStr()

    示例:

    FullName := "张" . "三"
    

2.4 注释与脚本组织

  1. 单行注释 使用分号;进行单行注释:

    ; 这是一个注释
    MsgBox, 这是一个弹窗
    
  2. 多行注释 使用/**/包围多行注释:

    /*
    这是一个多行注释
    可以跨越多行
    */
    MsgBox, 这是一个弹窗
    
  3. 脚本组织技巧

    • 将功能相似的代码放在一起。
    • 使用注释标注代码的功能。
    • 将复杂功能封装成函数(后续章节会详细讲解)。

2.5 总结

本章学习了AutoHotkey脚本的基础语法,包括脚本结构、变量与数据类型、运算符与表达式,以及注释与脚本组织的技巧。


第3章:热键与热字符串

热键(Hotkey)和热字符串(Hotstring)是AutoHotkey的两大核心功能。热键允许用户自定义快捷键,而热字符串可以在输入特定文本时自动替换为预设内容。本章将详细介绍如何定义和使用热键与热字符串。


3.1 如何定义自定义热键

热键是AutoHotkey的核心功能之一,允许用户将特定的按键组合绑定到一系列操作。

  1. 基本语法 定义热键的基本语法为:

    Hotkey::Action
    

    其中:

    • Hotkey:表示触发操作的按键组合。
    • Action:按键触发后执行的操作,可以是单行命令或多行代码块。
  2. 常见修饰键

    • ^:Ctrl键
    • !:Alt键
    • +:Shift键
    • #:Win键

    示例:

    ^j::MsgBox, 你按下了Ctrl+J
    !t::Run, notepad
    
  3. 自定义单个按键 热键不仅限于组合键,还可以是单个按键。例如:

    F1::MsgBox, 你按下了F1
    
  4. 屏蔽原有功能 如果希望屏蔽某个按键的原有功能,可以将其定义为空操作:

    CapsLock::
    

3.2 热字符串的使用

热字符串用于在输入特定文本时触发操作,例如自动替换或执行脚本。

  1. 基本语法 定义热字符串的基本语法为:

    ::Hotstring::Replacement
    

    其中:

    • Hotstring:表示触发的文本。
    • Replacement:要替换的内容或执行的操作。
  2. 文本替换示例 例如,将btw替换为by the way

    ::btw::by the way
    
  3. 触发符号 默认情况下,热字符串在输入后按下空格、回车或Tab键时触发。可以通过以下符号调整触发行为:

    • *:立即触发(无需按下其他键)。
    • ?:即使热字符串位于单词中间也会触发。
    • C:区分大小写。
    • R:将触发文本原样插入,而不是替换。

    示例:

    :*:btw::by the way ; 输入btw后立即替换
    
  4. 执行操作 热字符串不仅可以替换文本,还可以执行脚本。例如:

    :*:hi::MsgBox, 你好!
    

3.3 常用快捷键的设计与实现

以下是一些实用的快捷键示例,帮助你更好地理解热键的用途:

  1. 快速启动程序

    ^!n::Run, notepad
    ^!c::Run, calc
    
  2. 快速输入常用文本

    ::myemail::myemail@example.com
    ::myphone::123-456-7890
    
  3. 快速切换窗口

    ^!1::WinActivate, ahk_exe chrome.exe
    ^!2::WinActivate, ahk_exe notepad.exe
    
  4. 音量控制

    ^+Up::Send, {Volume_Up}
    ^+Down::Send, {Volume_Down}
    
  5. 鼠标操作自动化

    !LButton::Click, Right ; 按下Alt+左键模拟右键点击
    

3.4 热键与热字符串的高级用法

  1. 多命令热键 热键可以执行多条命令,将命令放在{}中:

    ^k::
    {
       MsgBox, 你按下了Ctrl+K
       Run, notepad
    }
    
  2. 条件热键 可以通过条件语句控制热键的行为:

    ^j::
    if (WinActive("ahk_exe chrome.exe")) {
       MsgBox, Ctrl+J在Chrome中按下
    } else {
       MsgBox, Ctrl+J在其他程序中按下
    }
    
  3. 动态热字符串 热字符串可以结合变量实现动态替换:

    MyVar := "AutoHotkey"
    ::ahk::%MyVar%
    

3.5 总结

本章学习了如何定义和使用热键与热字符串,这是AutoHotkey最强大的功能之一。通过自定义快捷键和文本替换,你可以显著提高工作效率。 在下一章中,我们将学习鼠标操作自动化,进一步扩展AutoHotkey的应用场景。