如何编写AutoHotkey脚本

AutoHotkey的AutoHotkey的

AutoHotkey是一款非常棒但又复杂的软件。它最初旨在将自定义热键重新绑定到不同的操作,但现在是一个完整的Windows自动化套件。

AHK并不是特别难以为新用户学习,因为一般概念相当简单,但它是一种完整的,图灵完备的编程语言。如果您有编程背景或熟悉这些概念,您将更容易学习语法。

安装和使用AutoHotkey

AutoHotkey的安装过程非常简单。从官方网站下载安装程序并运行它。选择“快速安装”。安装软件后,可以右键单击任意位置,然后选择“新建”>“AutoHotkey脚本”以创建新脚本。

新的autohotkey脚本

AHK脚本是带有的文本文件 .ahk 延期。如果右键单击它们,您将获得以下几个选项:

  • “运行脚本”将使用AHK运行时加载脚本。
  • “编译脚本”将它与AHK可执行文件捆绑在一起,以生成可以运行的EXE文件。
  • “编辑脚本”将在默认文本编辑器中打开您的脚本。您可以使用记事本编写AHK脚本,但我们建议使用SciTE4AutoHotkey,它是AHK的编辑器,支持语法突出显示和调试。

编译autohotkey脚本

在脚本运行时 – 无论是否为EXE – 您会发现它在Windows通知区域(也称为系统托盘)的后台运行。找到带有“H”的绿色图标。

要退出,暂停,重新加载或编辑脚本,请右键单击通知图标并选择适当的选项。脚本将继续在后台运行,直到您退出它们。当然,当您退出Windows或重新启动PC时,它们也会消失。

autohotkey脚本运行

AutoHotkey如何工作?

AHK的核心是做一件事 – 将动作绑定到热键。有许多不同的操作,热键组合和控制结构,但所有脚本都将按照相同的原则运行。以下是每当您按Windows + C时启动Google Chrome的基本AHK脚本:

#C::
运行Chrome
返回

第一行定义了一个热键。井号(#)是Windows键的缩写 C 是键盘上的C键。之后,有一个双冒号(::)表示一个动作块的开始。

下一行是一个动作。在这种情况下,该操作将启动一个应用程序 命令。该块完成了一个 返回 在末尾。您可以在此之前执行任意数量的操作 返回。它们都将依次开火。

就像那样,您已经定义了一个简单的键 – 动作映射。您可以根据需要放置尽可能多的这些 .ahk 文件并将其设置为在后台运行,始终寻找重新映射的热键。

热键和修饰符

您可以在官方文档中找到AHK修改器的完整列表,但我们将专注于最有用(和很酷)的功能。

修饰键都有单字符缩写。例如, #! ^ + 分别是Windows,Alt,Control和Shift。您还可以使用以下命令区分左右Alt,Control和Shift <> 修饰符,为额外的热键开辟了大量空间。例如, +是右移。查看您可以参考的所有内容的关键列表。 (剧透:你可以参考几乎所有的键。你甚至可以参考其他非键盘输入设备的小扩展名)。

您可以将任意多个键组合到一个热键中,但您很快就会用完要记住的键组合。这就是让你做出更疯狂的修饰符的地方。让我们分析一下AHK文档中的一个例子:

自动键指令

绿色的 #IfWinActive 被称为指令,并在脚本中将其他上下文应用于物理上的热键。之后的任何热键只有在条件为真时才会触发,并且您可以在一个指令下对多个热键进行分组。在您触及另一个指令之前,此指令不会更改,但您可以使用空白重置它 #如果 (如果这似乎是一个黑客,欢迎来到AHK)。

这里的指令是检查特定窗口是否打开,由…定义 ahk_class记事本。当AHK收到输入“Win + C”时,它将触发第一个操作 #IfWinActive 只有当指令返回true时,如果没有,则检查第二个指令。 AHK有很多指令,您可以在文档中找到所有这些指令。

AutoHotkey还有热字符串,其功能类似于热键,除了替换整个文本字符串。这类似于自动更正的工作原理 – 事实上,AHK有一个自动更正脚本,但支持任何AHK操作。

autohotkey hotstrings

只有在完全输入字符串时,hotstring才会匹配字符串。虽然可以调整此行为,但它也会自动删除匹配的文本以替换hotstring。

操作

AHK中的操作是对操作系统有外部影响的任何操作。 AHK有很多行动。我们不可能解释所有这些,所以我们将挑选一些有用的。

  • 发送输入,无论是文本还是按下各种按钮。

  • 移动鼠标。事实上,AHK有时被错误地标记为视频游戏的作弊软件,因为人们已经使用它制作了功能齐全的目标机器人。

  • 单击鼠标,相对于当前窗口定位。

  • 显示对话框菜单,包括表单和输入字段。

  • 移动窗户,调整大小,打开和关闭。

  • 玩音乐。

  • 写入Windows注册表。对真的。

  • 修改剪贴板的内容。

  • 读写文件。您可以遍历文件并在每一行上运行操作。 AHK甚至可以写信给 .ahk 文件并调整自己的代码。

大多数这些操作还将具有与之关联的面向信息的命令。例如,您可以写入剪贴板,但您也可以获取剪贴板的内容以存储在变量中并在剪贴板更改时运行函数。

用控制结构将其全部捆绑在一起

如果没有使图灵完成的所有控制结构,AHK就不会是它。

除了 #如果 指令,你也有权访问 如果 在行动块内。 AHK有 对于 循环,花括号块, 尝试抓住 陈述等等。您可以从操作块中访问外部数据,并将其存储在变量或对象中以供以后使用。您可以定义自定义函数和标签。真的,你可以用另一种编程语言轻松完成任何你可以在AHK中做的事情,有点头疼,看看文档。

例如,假设您有一个无聊,重复的任务,需要您连续单击多个按钮并等待服务器响应,然后再无限制地再次执行。您可以使用AHK自动执行此操作。您需要定义一些循环以将鼠标移动到特定位置,单击,然后移动到下一个位置并再次单击。抛出一些等待声明,使其不会中断。您甚至可以尝试读取屏幕上的像素颜色以确定发生了什么。

有一件事是肯定的 – 你的脚本可能不会很漂亮。但AutoHotkey也不是,那没关系。

本文机器自动生成,不保证语句完整通顺和表达准确,亦不对内容真实有效性负责,请读者知悉。