AutoHotkey
| 本条目需要擴充。(2011年6月3日) |
![]() |
|
|---|---|
| 開發者 | Chris Mallett (Chris), Steve Gray (Lexikos) |
| 初始版本 | 2003年11月10日 |
| 穩定版本 | 1.1.07.03/ 2012年3月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中增加了Unicode、COM、对象、调试特性和其他功能。[15]
同时AutoHotkey社区中的一些程序员也开发了他们自己的版本或分支:
- AutoHotkey_L – 目前的主分支
- AutoHotkeyU – Unicode版本,已合并到AutoHotkey_L
- AutoHotkey.dll – AutoHotkey的DLL版本
- 用于PocketPC的AutoHotkey – WinCE
- AHKLinux – Linux/Wine
- IronAHK – 用于Windows/Linux/Macintosh的.NET/Mono版本
示例[编辑]
下面这个脚本可以让用户使用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]。
用户开发的功能[编辑]
下面的扩展、互操作、内联脚本库用于与其他的编程语言进行交互,当前已可用或在开发中:
- .NET Framework – VB/C# (.NET)
- LibLua – Lua
- Lisp on win32 – Lisp
- Embeddable Common Lisp – ECL
- Windows Scripting Host – VBScript/JScript
- Embedded machine code – Machine code
其他:
- Aspect Oriented Programming
- COM Wrappers – COM
- Dynamic Code Generation
- Human Interface Device(HID) Support – HID
- Internet Explorer Automation
- SmartGUI Creator
- Sparrow AHK Web Server
- Synthetic programming
- Windows Event Hooks
另请参阅[编辑]
- AutoIt
- AutoKey (用于Linux)
- Automator (用于Macintosh)
- Bookmarklet
- 用于Firefox的iMacros
参考资料[编辑]
- ^ AutoHotkey Changelog.
- ^ Contact Erica Sadun: Comment. Ericasadun 2005 Life Hacker. Lifehacker.com. 2005-08-19 [2011-12-02].
- ^ AutoHotkey 向导: 创建宏和热键. cn.autohotkey.com. [2011-12-02].
- ^ 重映射按键和鼠标按钮. cn.autohotkey.com. [2011-12-02].
- ^ 热字串和自动替换 (类似于自动图文集和自动更正). cn.autohotkey.com. [2011-12-02].
- ^ AutoHotkey Changes and New Features, v1.0.47 - June 19, 2007. Autohotkey.com. [2011-12-02].
- ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02].
- ^ An AutoIt / AutoHotkey nonfunctional comparison. Paperlined.org. [2011-12-02].
- ^ AutoHotkey Changelog for Years 2003-2004. Autohotkey.com. [2011-12-02].
- ^ Author Chris Mallett's post on the AutoHotkey Forums. Autohotkey.com. [2011-12-02].
- ^ Licensing Opinions - AutoIt Forums. Autoitscript.com. [2011-12-02].
- ^ Alkasab 2008 SIIM
- ^ Forum post by Chris, announcing AutoHotkey_L now main platform. Autohotkey.com. [2011-12-02].
- ^ Download page showing AutoHotkey_L as ongoing platform. Autohotkey.com. [2011-12-02].
- ^ AutoHotkey_L 的新增特性. cn.autohotkey.com. [2011-12-28].
- ^ AutoHotkey中热字串的终止符和选项. cn.autohotkey.com. [2012-01-03].
- ^ AutoHotkey Community Forum Page. Autohotkey.com. [2011-12-02].
- ^ Getting connected to AutoHotkey's IRC Chat. Autohotkey.com. [2011-12-02].
- ^ The future of AutoHotkey.com. Chris. 2012-01-26 [2012-02-01].
- ^ AutoHotkey - 免费的含热键和自动图文集功能的鼠标和键盘宏程序. cn.autohotkey.com. [2012-01-24].
- ^ AutoHotkey_L Roadmap. l.autohotkey.net. [2012-01-24].
