【指南】AutoHotkey 是什么?

【指南】AutoHotkey 是什么?

胡杨胡杨

作者:amnesiac 首发:官方论坛中文版

本文说明:

  • 本文是本专栏开篇,主要目的是让各位朋友对 AutoHotkey 有大致的认识。
  • 本文是为 AutoHotkey 新手、尤其是那些平时经常有操作电脑但不会编程也对脚本了解甚少的人所准备的,不过如果您已有这方面的一些认识,也可适当参考。
  • 本文可能随时在不通知的情况下进行更新,以修正、补充并完善,同时欢迎各位朋友的意见和建议。

我想您看到标题时就已经有答案了,“脚本语言嘛”。确实没错,不过我想说的不只是这一点。这里通过两个问题让我们清楚的认识到 AutoHotkey 是什么及不是什么。

AutoHotkey 擅长什么?

先看看维基百科条目编写本文时 AutoHotkey 条目内容(本文发表后该条目被重写,条目当前内容请看 AutoHotkey), 可以看到它能做的事情还是蛮多的,但从常用功能中我们可以看到“按键”(包括“热键”等)出现的频率很高,同时提到另一个常用功能“扩展缩写”。没错,这里总结了它所擅长的事情:热键和热字串。这两者对用户而言实际是操作的方式,而不是功能,功能则是根据我们的需求而定。没有脚本我也能做这些操作,为什么还要用脚本呢?先看下面这个简单的脚本:

WheelUp::Send {Volume_Up}     ; 向上转动(远离您的方向)鼠标滚轮增加音量。
WheelDown::Send {Volume_Down} ; 向下转动鼠标滚轮减小音量。

平时我们怎样调节音量的?托盘图标中点击音量图标,在弹出的音量条中拖动。执行了上面这个脚本后,调节音量时只要滚动鼠标滚动就行了,比原来方便快捷吗?尤其在您需要经常调节音量时,当然,这个脚本在实际使用时还需调整,不然以后就没办法滚动鼠标来浏览网页了。所以,AutoHotkey 的主要功能即热键和热字串是为您在电脑中执行操作提供更快捷简便的方式

    1. 热键是利用键盘、鼠标、游戏杆等的按键和按钮执行一序列操作。
    2. 热字串用于扩展缩写、输入常用短语和批量文本等。

什么时候不应考虑?

在网上提到 AutoHotkey 时常作为生产力工具,这是由于在许多时候它确实能为我们操作电脑带来许多方便。但要让它成为一个高效工具还需要给以适合的定位:让它做它擅长的事情(参见上文)。回到问题,热键、热字串它很擅长,但我们要实现的目标操作呢?对于常见的任务(重映射键盘、操作窗口、字符串处理等),如维基百科中所描述的,它都能很好的胜任;对于较复杂的操作,则需要斟酌了(在功能上它是无法和 Python 这种脚本语言比较的)。所以,一般而言,AutoHotkey 能很好的完成电脑中的常见操作,对于复杂的应把它当成桥梁操作其他工具来实现我们的需要。例如批量调整图片的分辨率,在网上可以找到一堆现成的工具,再写上个简单的脚本就可以用我们喜欢的方式做我们要做的事情。(对于复杂的任务,例如需要使用 Windows API 时,除非能在网上找到现成好用的 AutoHotkey 代码,否则投入的时间很难估计,当然也就没有高效可言了。不过如果是有兴趣或编程经验者,不在讨论之列。)

这里仅一般情况而言,具体需根据自己的实际需求和状况对其定位。此外,必须说明这种不应考虑的情况并非指 AutoHotkey 不能完成。

其他

我的测试环境

这里说明本专栏中代码的测试环境,若未特别说明,则这些代码均在此环境中测试通过:

  • Windows XP with SP3
  • AutoHotkey 1.1.50.00 Unicode build
  • 脚本文件编码为 UTF-8 with BOM

若在其他情况中遇到问题时请在评论中留言。

推荐阅读方法

在写本专栏中文章时,我力求验证充分、表述严谨,但因个人视角、条件所限同时某些特性在 AutoHotkey 不同版本中有所变化,所以疏漏之处在所难免,敬请批评指正。


2016-1-30补充:脚本语言的本质不在于实现多少功能,而在于提高效率。使用脚本语言的较高境界的人并非能实现最多功能或最强大功能的人,而是能提高效率的人。

文章被以下专栏收录
18 条评论
推荐阅读