AutoHotkey

维基百科,自由的百科全书
跳转至: 导航搜索
AutoHotkey
AutoHotkey logo.png
開發者 Chris Mallett (Chris), Steve Gray (Lexikos)
初始版本 2003年11月10日  (2003-11-10)
穩定版本 1.1.15.02[1] / 2014年7月7日;23天前 (2014-07-07)
預覽版本 2.0-a049[1] / 2014年7月28日;2天前 (2014-07-28)
開發狀態 活跃
编程语言 C++
操作系统 Microsoft Windows
语言 英语
类型 脚本语言 自动化 GUI
许可协议 GPL
網站 www.ahkscript.org请参阅#官方网站说明

AutoHotkey 是面向普通电脑用户的自由开源自动化软件工具,它让用户能够快捷或自动执行重复性任务[2][3]。为了保持 AutoHotkey 自由开放、持续开发,2014 年 4 月成立了 AutoHotkey Foundation 以提供组织、法务和财政上的支持。[4]

AutoIt 等同类工具比较,AutoHotkey 没有提供更强大的功能,而语法的差异也见仁见智,但它的热键和热字串提供的简便快捷操作方式使其超越它们而成为高效的生产力工具。

功能与定位[编辑]

特色功能[编辑]

通过热键或热字串触发是 AutoHotkey 脚本中执行操作最常见的两种方式,它们都很容易编写且使用方便,因此快捷高效。AutoHotkey 对这两者的支持比同类工具强大许多。

热键[编辑]

热键是指通过按下预定义的某个按键或组合键执行特定操作的一种方式,常用于根据用户需要执行操作,例如:

LWin::return

在全屏程序中操作时(尤其是游戏),经常会误触 Win 键打开开始菜单而退出全屏,让人很无奈。现在只要打开全屏程序前先执行该脚本(这里屏蔽 Win 键),在全屏时无需担心误触而退出了(这里只屏蔽左边的 Win 键)。

#g:: ; Win+g
   Run http://www.google.com/search?q=%clipboard%
Return

运行这个脚本后,只需把要搜索的内容复制到剪贴板,然后使用热键 Win+g 就可以打开默认网页浏览器并自动通过 Google 开始搜索。 AutoHotkey 中不仅支持把单键、组合键设为热键,同时还支持将鼠标和游戏杆按钮设为热键,例如:[5]

#If MouseIsOver("ahk_class Shell_TrayWnd")
WheelUp::Send {Volume_Up}
WheelDown::Send {Volume_Down}
 
MouseIsOver(WinTitle) {
    MouseGetPos,,, Win
    return WinExist(WinTitle . " ahk_id " . Win)
}

通过该脚本,我们可以在任务栏上滚动鼠标滚轮来快速调节音量。

AutoHotkey 中热键的功能非常强大,支持几乎所有按键和按钮、上下文热键、自定义组合键、动态热键等,同时众多的修饰符提供了许多附加特性。[6]可实现其他工具不方便或难以实现的一些功能,如重映射键盘按键(甚至是键盘布局,如从 QWERTY 映射为 Dvorak)、鼠标和游戏杆按钮。[7]

热字串[编辑]

热字串(有时也被称为“序列键”,类似 Vim 一些模式中的操作键)是指按顺序键入一些字符后触发对应操作的一种方式。它的典型应用是扩展缩写:

::wjbk::维基百科,自由的百科全书

执行这个脚本后,依次按下wjbk(“维基百科”四个字的拼音首字母)后会被替换为维基百科,自由的百科全书并输入到当前文本框中(实际使用时还需按下终止符才会替换)。这种功能常用于输入常用字符串、在邮件或论坛中签名、填写数据录入表单及纠正常见英文拼写错误等。

除了扩展缩写,热字串也像热键一样能执行任何自定义操作:

::rn::
Run, Notepad
return

这里依次按下rn后会打开记事本。

热字串的许多选项为其添加了丰富的特性和选择。[8]

其他功能简介[编辑]

AutoHotkey 能快速实现的常见功能包括:

  • 重映射键盘按键、鼠标和游戏杆的按钮;
  • 发送键击及鼠标和操纵杆的点击几乎可自动化所有操作;
  • 启动程序或文档,操作与控制其他程序的窗口;
  • 处理字符串,支持正则表达式
  • 操作文件和文件夹、注册表和 INI 文件;
  • 设置静音,调节音量和声卡的其他设置;
  • 创建自定义图形用户界面程序,从用户或文件中获取输入;
  • 监视系统,当某些状态改变时自动响应;
  • 通过检测图像和像素颜色来自动操作游戏,以减缓肢体重复性劳损

脚本定位[编辑]

AutoHotkey 语法宽松灵活、关键字不区分大小写、变量可直接使用(无需声明),且自带简明易懂的入门教程,[9]所以普通用户可通过它快速高效地实现自己的需求。

在网络中提到时常被作为生产力工具,不过正确的定位才能真正发挥出高效:利用它提供的热键和热字串功能实现目标操作。对于常见的任务(重映射键盘、操作窗口、字符串处理等),它直接能完成的很好;对于较复杂的操作,则把它当成桥梁操作其他工具来实现我们的需要。[10]

当前活跃分支[编辑]

下面简介 AutoHotkey 当前的活跃分支,详细的说明和历史分支介绍请参阅选择哪个分支?

AutoHotkey_L[编辑]

AutoHotkey_L 指主要由 Lexikos 在 AutoHotkey Basic 基础上开发的分支,主要增加或增强了以下功能:[11]

  • 提供 Unicode、COM 和 64 位原生支持
  • 对象(可扩展的联合数组)
  • 增强的文件编码支持和错误处理
  • 面向对象文件 I/O

这是目前的主流分支,建议所有用户优先选择。

AutoHotkey v2[编辑]

AutoHotkey v2[12] 由 Lexikos 基于 AutoHotkey_L 代码开发,主要进行语法改进和功能整合。目前仍在测试过程中,语法、功能尚不稳定(与 AutoHotkey_L 差异较大[13]),欢迎用户参与测试协助完善[14],尚不推荐作为日常使用。

AutoHotkey_H[编辑]

AutoHotkey_H[15] 是由 HotkeyIt 合并了原有 AutoHotkey.dll 并在 AutoHotkey_L(及 AutoHotkey v2)基础上开发的增强分支。它没有使用自己的版本号,一般与 AutoHotkey_L(及 AutoHotkey v2)并行开发。 这个名称实际上包含了基于 AutoHotkey_LAutoHotkey v2 两种分支扩展后的 AutoHotkey.exe(H 版本)和 AutoHotkey.dll 及相关文件,功能有所增强,有经验的老用户可考虑使用。

其他内容[编辑]

辅助工具[编辑]

目前 AutoHotkey 的安装包中自带了英文帮助、ahk2exe(脚本编译器,即用于把脚本转换成可执行文件)、Window Spy(获取窗口和控件的信息),此外还有许多方便编写、提升效率的辅助工具:

  • 中文帮助[16]:英文帮助的中文翻译,目前能及时更新。
  • SciTE4AutoHotkey:基于 SciTE 的 AutoHotkey 脚本编辑器,包括语法高亮、自动补全、智能提示及其他专用于 AutoHotkey 的增强支持和辅助工具,推荐新手使用。
  • GUI Creator[17]:在图形界面中为 AutoHotkey 脚本创建 GUI 的工具,极大降低了图形用户界面命令的学习成本和创建难度。
  • Pulover's Macro Creator[18]:宏录制和自动化脚本创建工具。
  • iWB2 Learner[19]:从 IE 中获取网页元素信息的工具,在编写通过 COM 自动化操作 IE 的方便辅助。

实用脚本[编辑]

这里列出一些基于 AutoHotkey 编写的实用工具:

  • 屏幕密码锁[20]:屏幕密码锁软件,可以方便地锁住鼠标和屏幕。
  • AHK 脚本管理器[21]:用于管理(包括启动、关闭、重载和编辑等操作)AutoHotkey 脚本的工具。
  • Folder Menu[22]:在常用位置(我的电脑、打开/保存对话框、命令提示符TC等)快速切换文件夹的工具注:后来的版本改用 AutoIt 编写
  • HK4WIN[23]:针对Windows系统的快捷键增强软件。
  • VimDesktop[24]:让 Windows 桌面程序拥有 Vim 操作风格的辅助工具 。
  • LINK[25]:用于管理、收藏、重命名各种快捷方式,以便你记忆并通过热字符快速启动程序。

官方网站说明[编辑]

AutoHotkey Basic 时期,官方网站为 www.autohotkey.com。当 Chris Mallett(原作者)停止更新时宣布 AutoHotkey_L 为后续主分支。[26]不久网站转由 polyethene 管理,他对网站的决定与论坛中许多核心用户出现较大分歧[27][28]且不时失去联系[29],于是这些用户建立了 ahkscripts.org 作为 AutoHotkey_L 的支持网站[30],并成立了公司确保其正常运营。[31]

目前原官网的下载链接提供的仍为 AutoHotkey Basic,已无法满足当前用户需求,所有用户都应到新官网中下载 AutoHotkey_L。因此,在软件信息和外部链接中均不再提供原官网,以免误导新用户。

名称的大小写[编辑]

一般而言,普遍接受的全名大小写形式为 AutoHotkey,即字母 A、H 大写,其余字母小写,注意这里的 k 也是小写的。有些时候可能看到 autohotkey,即完全小写的形式,这是种较随意的写法。

对于简称,可写为 ahkAHK,这里三个字母可大写可小写,但大小写形式必须保持一致。

开发历史[编辑]

Chris Mallett 提议在 AutoIt v2 中集成热键支持未得到 AutoIt 社区响应[32][33]后,于 2003 年 11 月 10 日公开发布了 AutoHotkey 的首个测试版本。[34]作者以 AutoIt v2 的语法为基础并在一些命令和编译器中使用 AutoIt v3 的源码开始编写自己的程序。[35]随后,AutoIt v3 的许可从 GPL 切换为闭源,原因是“某些项目重复窃取 AutoIt 的代码”和“建立了竞争者”。[36]

2010 年 10 月 10 日,原作者在停止更新一年多后表示“失去了兴趣”并声明 AutoHotkey_L 为正在开发的分支,并把它放置在网页的下载部分的前面。[37]同时把原来的版本称为 AutoHotkey Basic。[38]比起 AutoHotkey Basic,AutoHotkey_L 中增加了 UnicodeCOM对象调试特性和其他功能。[11]

另请参阅[编辑]

参考资料[编辑]

  1. ^ 1.0 1.1 AutoHotkey Downloads. ahkscript.org. [2014-06-15]. 
  2. ^ Scott Hanselman. 2014年Windows平台软件推荐(中文译文). 知乎. [2014-03-17]. 
  3. ^ Prevent RSI with AutoHotkey. cedeq.com. [2014-03-02]. 
  4. ^ The AutoHotkey Foundation. ahkscript.org. [2014-06-29]. 
  5. ^ #If 指令示例. AutoHotkey 中文帮助. ahkcn.sf.net. [2014-06-16]. 
  6. ^ 热键入门和功能介绍. AutoHotkey 中文帮助. ahkcn.sf.net. [2014-06-16]. 
  7. ^ 重映射按键和鼠标按钮. AutoHotkey 中文帮助. ahkcn.sf.net. [2014-06-16]. 
  8. ^ 热字串和自动替换. AutoHotkey 中文帮助. ahkcn.sf.net. [2014-06-16]. 
  9. ^ AutoHotkey 入门指南. ahkcn.sourceforge.net. [2014-06-16]. 
  10. ^ 胡杨. AutoHotkey 是什么?. AutoHotkey 之美. 知乎. [2014-06-16]. 
  11. ^ 11.0 11.1 AutoHotkey_L 的新增特性. ahkcn.sourceforge.net. [2011-12-28]. 
  12. ^ AutoHotkey v2. ahkscript.org. [2014-06-15]. 
  13. ^ 与 v1.1 比较 v2.0 的主要变化. ahkscript.org. [2014-06-15]. 
  14. ^ AutoHotkey v2 Development. ahkscript.org. [2014-06-15]. 
  15. ^ HotKeyIt. AutoHotkey_H. autohotkey.net. [2014-06-16]. 
  16. ^ AutoHotkey 中文帮助. ahkcn.sf.net. [2014-06-16]. 
  17. ^ maestrith. GUI Creator. ahkscript.org. [2014-06-16]. 
  18. ^ Pulover's Macro Creator. macrocreator.com. [2014-04-08]. 
  19. ^ iWB2 Learner 页面
  20. ^ Lock Screen Appinn – 屏幕密码锁升级到 1.4.7. 小众软件. [2014-04-08]. 
  21. ^ AHK 脚本管理器. 小众软件. [2014-04-08]. 
  22. ^ Folder Menu 2.01 – 瞬间切换文件夹. 小众软件. [2014-04-08]. 
  23. ^ 宋瑞华. HK4WIN 官方网站. [2014-04-08]. 
  24. ^ VimDestop 使用简介. github.com. [2014-04-23]. 
  25. ^ megalove. LINK 第四版. AutoHotkey 中文论坛. [2014-05-20]. 
  26. ^ Chris. My status and website changes. AutoHotkey.com. [2014-06-15]. 
  27. ^ polyethene. Changes for AutoHotkey website. AutoHotkey.com. [2014-06-15]. 
  28. ^ sumon. Make AHK_L "main" version?. AutoHotkey.com. [2014-06-15]. 
  29. ^ tidbit. Basics as to why AHKSCRIPT exists. ahkscript.com. [2014-06-15]. 
  30. ^ tank. Welcome and if you need help. ahkscript.org. [2014-06-15]. 
  31. ^ The AutoHotkey Foundation. ahkscript.org. [2014-06-15]. 
  32. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  33. ^ An AutoIt / AutoHotkey nonfunctional comparison. Paperlined.org. [2011-12-02]. 
  34. ^ AutoHotkey Changelog for Years 2003-2004. Autohotkey.com. [2011-12-02]. 
  35. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  36. ^ Licensing Opinions - AutoIt Forums. Autoitscript.com. [2011-12-02]. 
  37. ^ Forum post by Chris, announcing AutoHotkey_L now main platform. Autohotkey.com. [2011-12-02]. 
  38. ^ Download page showing AutoHotkey_L as ongoing platform. Autohotkey.com. [2011-12-02]. 

外部链接[编辑]