AutoHotkey

维基百科,自由的百科全书
跳转至: 导航搜索
AutoHotKey
AutoHotkey logo.png
開發者 Chris Mallett (Chris), Steve Gray (Lexikos)
初始版本 2003年11月10日  (2003-11-10)
穩定版本 1.1.14.03 / 2014年2月14日;2個月前 (2014-02-14) [1]
預覽版本 2.0-a045 / 2014年2月13日;2個月前 (2014-02-13)
開發狀態 支持、更新中
编程语言 C++
操作系统 Microsoft Windows
语言 英语
类型 脚本语言 自动化 GUI 实用软件
许可协议 GPL
網站 官方:www.autohotkey.com
分支:www.ahkscript.org

AutoHotkey 是一个自由开源生成器和自动化软件工具,它让用户能够自动执行重复性任务[2][3]。AutoHotkey 可以修改任何应用程序的用户界面(例如,把默认的 Windows 按键控制命令替换为 Emacs 风格)[4]。它是由定制的脚本语言驱动,旨在提供键盘快捷键热键

常用功能[编辑]

AutoHotkey 脚本可以运行程序、打开文档、发送键击以及点击和移动鼠标[5] AutoHotkey 脚本还可以赋值、获取和操作变量、执行循环和操作窗口文件以及文件夹。这些命令可以使用热键触发,例如每当用户按下键盘上的 Ctrl+Alt+i 时打开互联网浏览器的脚本。还可以禁用或重映射键盘按键,例如按下字母 q 可以让计算机接收到字母‘r’或什么都没有。[6]AutoHotkey 还提供了‘热字串’,它可以在输入特定的文本时自动进行替换。热字串最常见的用途是扩展缩写,例如在输入“btw”自动把它替换成“by the way”,或在输入文本“%o”时自动发送“percentage of”。[7] 通过下列方式实现还可以实现更复杂的任务:自定义数据录入窗体( GUI 窗口)、操作 Windows 注册表或通过操作 DLL 使用 Windows 自带的 API。脚本还可以编译可执行文件,这样就可以运行在没有安装 AutoHotkey 的电脑上。源代码为 C++ 语言,可以使用 Visual Studio Express 编译。

AutoHotkey 中能像 C 一样使用指针进行内存访问。[8]

AutoHotkey 执行的常见任务有:

  • 重映射键盘,例如从 QWERTY 映射为 Dvorak 或其他可选的键盘布局。
  • 使用快捷键填写常用文件名或其他词组。
  • 通过键盘或控制杆控制鼠标光标。
  • 使用简单的按键打开程序,文档和网站。
  • 添加签名电子邮件论坛等等。
  • 监视系统并自动关闭不想要的程序。
  • 调度自动的提醒程序英语Reminder_software、系统扫描或备份
  • 自动进行网络游戏中的重复任务(通常违反了游戏的服务条款),以减缓重复性劳损
  • 自动填写内容(即它可以自动输入您的名字,地址等),尤其常用于数据输入表单。
  • 在使用另一种编程语言实现(消耗更多时间)前进行快速代码测试。

开发历史[编辑]

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

2010 年 10 月 10 日,作者声明 AutoHotkey_L 为正在开发的分支,并把它放置在网页的下载部分的前面。[14]同时把原来的版本称为 AutoHotkey Basic。[15]比起 AutoHotkey Basic,AutoHotkey_L 中增加了 UnicodeCOM对象调试特性和其他功能。[16]

同时AutoHotkey社区中的一些程序员也开发了他们自己的版本或分支:

脚本示例[编辑]

下面这个脚本可以让用户使用 Google 搜索文本。只需要把文本复制到剪贴板,然后使用热键 Win+g 就可以打开默认网页浏览器并自动开始搜索。

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

下面这个脚本创建了热字串 "wj",这样当我们输入这个缩写时会自动被脚本替换为“维基百科,自由的百科全书”(实际使用时在输入 "wj" 后还需要输入终止符(例如回车)后才会进行替换,不过可以使用星号选项来避免:[17]

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

在这个例子中,每当从维基百科站点的某个位置复制了用户名或 IP 地址链接到剪贴板中(使用 Firefox),下面的脚本可以让用户通过 CopyUser() 函数对剪贴板的内容进行操作并把结果保存到由 Ctrl+ Shift+wCtrl+ Shift+e 热键指定的变量中。Ctrl+ Shift+R 热键利用前面得到的两个变量来生成恢复编辑摘要。

^+w::last := CopyUser() ; Ctrl+Shift+w
^+e::edit := CopyUser() ; Ctrl+Shift+e
 
CopyUser()
{
   Clipboard =
   StringReplace, Clipboard, Clipboard, http://zh.wikipedia.org/
   StringReplace, Clipboard, Clipboard, wiki/
   StringReplace, Clipboard, Clipboard, w/index.php?title=
   StringReplace, Clipboard, Clipboard, Special:Contributions&target=
   StringReplace, Clipboard, Clipboard, User:
   StringReplace, Clipboard, Clipboard, &action=edit
   StringReplace, Clipboard, Clipboard, _, %A_Space%, All
   Return, Clipboard
}
 
; Ctrl+Shift+r
^+r::Send revert edits by [[Special:Contributions/%edit%|%edit%]] to last version by %last%

下面这个脚本会显示中国基本算术教育中使用的九九乘法表

Table := ""
 
Loop, 9
{
    Table .= SubStr("  " Row := A_Index, -2) " |"
    Loop, 9
        Table .= SubStr("    " (A_Index <= Row ? A_Index * Row : ""), -3)
    Table .= "`n"
}
 
Table .= "----+"
Loop, 36
    Table .= "-"
Table .= "`n"
 
Table .= "  x |"
Loop, 9
    Table .= SubStr("   " A_Index, -3)
Table .= "`n"
 
MsgBox, % Table

在 AutoHotkey 在线论坛的脚本和函数(英文)版块和 AutoHotkey 中文论坛的脚本展示版块可以找到更多可用的 AutoHotkey 脚本。

社区[编辑]

截至 2010 年 10 月 AutoHotkey 的在线社区已有大约 20,250 注册用户和 372,000 个帖子。[18]

AutoHotkey 的在线聊天室在 Freenode IRC,到 2009 年 11 月一般有 40 个连接的用户。[19]

至 2012 年 1 月 AutoHotkey 中文论坛中已发贴的注册用户近 3000,帖子数约 24000。

最近, AutoHotkey 的创建者表示由于“没有更多的时间做更多的事情”而打算将 autohotkey.com 转托他人。[20]

国际化[编辑]

在 AutoHotkey_L 中添加了对 Unicode 的支持[21]

从 AutoHotkey 发布以来,除使用英语的官方网站和论坛外,陆续有许多国家的爱好者建立了使用本地语言的网站或论坛等,它们都链接到了AutoHotkey官方主页。它们通常包含了本地语言的帮助,教程以及其他资源。其中中文用户建立了 AutoHotkey 中文站,其中包含中文帮助、到中文论坛的链接和 AHKCN QQ 群等。

目前,AutoHotkey 脚本主窗口的界面和脚本的提示等只有英文,不过 Lexikos 在 1.1.x 计划中考虑增加多语言的需求。[22]

用户开发的功能[编辑]

下面的扩展、互操作、内联脚本库用于与其他的编程语言进行交互,当前已可用或在开发中:

其他:

实用工具[编辑]

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

  • Pulover's Macro Creator[23]:宏录制和自动化脚本创建工具。
  • 屏幕密码锁[24]:屏幕密码锁软件,可以方便地锁住鼠标和屏幕。
  • AHK 脚本管理器[25]:用于管理(包括启动、关闭、重载和编辑等操作)AutoHotkey 脚本的工具。
  • Folder Menu[26]:在常用位置(我的电脑、打开/保存对话框、命令提示符TC等)快速切换文件夹的工具(注:后来的版本改用 AutoIt 编写)。
  • HK4WIN[27]:针对Windows系统的快捷键增强软件。

另请参阅[编辑]

参考资料[编辑]

  1. ^ AutoHotkey Downloads. 
  2. ^ Scott Hanselman. Scott Hanselman 的 2014 年 Windows 平台软件推荐(中文译文). 知乎. [2014-03-17]. 
  3. ^ Prevent RSI with AutoHotkey. cedeq.com. [2014-03-02]. 
  4. ^ Contact Erica Sadun: Comment. Ericasadun 2005 Life Hacker. Lifehacker.com. 2005-08-19 [2011-12-02]. 
  5. ^ AutoHotkey 向导: 创建宏和热键. ahkcn.sourceforge.net. [2011-12-02]. 
  6. ^ 重映射按键和鼠标按钮. ahkcn.sourceforge.net. [2011-12-02]. 
  7. ^ 热字串和自动替换 (类似于自动图文集和自动更正). ahkcn.sourceforge.net. [2011-12-02]. 
  8. ^ AutoHotkey Changes and New Features, v1.0.47 - June 19, 2007. Autohotkey.com. [2011-12-02]. 
  9. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  10. ^ An AutoIt / AutoHotkey nonfunctional comparison. Paperlined.org. [2011-12-02]. 
  11. ^ AutoHotkey Changelog for Years 2003-2004. Autohotkey.com. [2011-12-02]. 
  12. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  13. ^ Licensing Opinions - AutoIt Forums. Autoitscript.com. [2011-12-02]. 
  14. ^ Forum post by Chris, announcing AutoHotkey_L now main platform. Autohotkey.com. [2011-12-02]. 
  15. ^ Download page showing AutoHotkey_L as ongoing platform. Autohotkey.com. [2011-12-02]. 
  16. ^ AutoHotkey_L 的新增特性. ahkcn.sourceforge.net. [2011-12-28]. 
  17. ^ AutoHotkey中热字串的终止符和选项. ahkcn.sourceforge.net. [2012-01-03]. 
  18. ^ AutoHotkey Community Forum Page. Autohotkey.com. [2011-12-02]. 
  19. ^ Getting connected to AutoHotkey's IRC Chat. Autohotkey.com. [2011-12-02]. 
  20. ^ The future of AutoHotkey.com. Chris. 2012-01-26 [2012-02-01]. 
  21. ^ AutoHotkey - 免费的含热键和自动图文集功能的鼠标和键盘宏程序. ahkcn.sourceforge.net. [2012-01-24]. 
  22. ^ AutoHotkey_L Roadmap. l.autohotkey.net. [2012-01-24]. 
  23. ^ Pulover's Macro Creator. macrocreator.com. [2014-04-08]. 
  24. ^ Lock Screen Appinn – 屏幕密码锁升级到 1.4.7. 小众软件. [2014-04-08]. 
  25. ^ AHK 脚本管理器. 小众软件. [2014-04-08]. 
  26. ^ Folder Menu 2.01 – 瞬间切换文件夹. 小众软件. [2014-04-08]. 
  27. ^ 宋瑞华. HK4WIN 官方网站. [2014-04-08]. 

外部链接[编辑]