AutoHotkey

维基百科,自由的百科全书
跳转至: 导航搜索
AutoHotKey
AutoHotkey logo.png
開發者 Chris Mallett (Chris), Steve Gray (Lexikos)
初始版本 2003年11月10日 (2003-11-10)
穩定版本 1.1.07.03/
2012年3月25日;14個月前 (2012-03-25) [1]
作業系統 Microsoft Windows
類型 脚本语言 自动化 GUI 实用软件
許可協議 GPL
網站 cn.autohotkey.com

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

目录

功能[编辑]

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

AutoHotkey中允许像C一样使用指针进行内存访问。[6]

常见的AutoHotkey任务:

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

历史[编辑]

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

AutoHotkey已经被医生应用于X射线领域。[12]

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

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

示例[编辑]

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

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

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

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

在这个例子中,每当从维基百科站点的某个位置复制了用户名或 IP 地址链接到剪贴板中(使用Firefox),下面的脚本可以让用户通过CopyUser函数对剪贴板的内容进行操作并把结果保存到由Ctrl+Shift+W或Ctrl+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个帖子。[17]

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

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

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

国际化[编辑]

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

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

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

用户开发的功能[编辑]

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

其他:

另请参阅[编辑]

参考资料[编辑]

  1. ^ AutoHotkey Changelog. 
  2. ^ Contact Erica Sadun: Comment. Ericasadun 2005 Life Hacker. Lifehacker.com. 2005-08-19 [2011-12-02]. 
  3. ^ AutoHotkey 向导: 创建宏和热键. cn.autohotkey.com. [2011-12-02]. 
  4. ^ 重映射按键和鼠标按钮. cn.autohotkey.com. [2011-12-02]. 
  5. ^ 热字串和自动替换 (类似于自动图文集和自动更正). cn.autohotkey.com. [2011-12-02]. 
  6. ^ AutoHotkey Changes and New Features, v1.0.47 - June 19, 2007. Autohotkey.com. [2011-12-02]. 
  7. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  8. ^ An AutoIt / AutoHotkey nonfunctional comparison. Paperlined.org. [2011-12-02]. 
  9. ^ AutoHotkey Changelog for Years 2003-2004. Autohotkey.com. [2011-12-02]. 
  10. ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02]. 
  11. ^ Licensing Opinions - AutoIt Forums. Autoitscript.com. [2011-12-02]. 
  12. ^ Alkasab 2008 SIIM
  13. ^ Forum post by Chris, announcing AutoHotkey_L now main platform. Autohotkey.com. [2011-12-02]. 
  14. ^ Download page showing AutoHotkey_L as ongoing platform. Autohotkey.com. [2011-12-02]. 
  15. ^ AutoHotkey_L 的新增特性. cn.autohotkey.com. [2011-12-28]. 
  16. ^ AutoHotkey中热字串的终止符和选项. cn.autohotkey.com. [2012-01-03]. 
  17. ^ AutoHotkey Community Forum Page. Autohotkey.com. [2011-12-02]. 
  18. ^ Getting connected to AutoHotkey's IRC Chat. Autohotkey.com. [2011-12-02]. 
  19. ^ The future of AutoHotkey.com. Chris. 2012-01-26 [2012-02-01]. 
  20. ^ AutoHotkey - 免费的含热键和自动图文集功能的鼠标和键盘宏程序. cn.autohotkey.com. [2012-01-24]. 
  21. ^ AutoHotkey_L Roadmap. l.autohotkey.net. [2012-01-24]. 

外部链接[编辑]