【指南】选择哪个分支?

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

对于绝大多数用户这个问题的答案都应该是 AutoHotkey_L,那么这个问题还是问题吗?对于新人我还是有必要简要介绍它们(这是他们的主要困惑之一),以便对这些名称及它们的含义有个清晰的认识,同时明白自己选择的原因(顺便也了解些典故)。


图 AutoHotkey 的历史和当前分支一览(来源

AutoHotkey_L(首选)

AutoHotkey_L 指主要由 Lexikos 在原 AutoHotkey Basic(见下文)源码基础上开发的分支,具体包括从1.0.48.05 L4 版本号 (更新记录为 Revision 4,发布于 2008-07-18)至今的所有版本,更新记录请参阅 AutoHotkey_L 更新记录。有时会被笼统的称为“AutoHotkey 1.1“(目前在下载页面即是如此)。

功能的增强

它在 AutoHotkey Basic 基础上增加或增强的主要功能(详细说明请参阅 AutoHotkey_L 新特性):

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

功能的增强是我们选择的重要原因之一,在如今的 Windows 主流系统中不支持 Unicode 的脚本用处还有多大呢?尤其对于中文用户。

主流的支持

功能的增强是其中一个方面,主流的支持则是另一个重要原因。与其他比较,AutoHotkey_L 是目前 AutoHotkey 社区用户使用的主流分支:

  • 目前尚在更新,包括修复缺陷和完善功能
  • 社区中的函数和脚本几乎都适用该分支
  • 遇到问题时能方便从社区或网络获得支持

所以,如果您在犹豫,那么选择 AutoHotkey_L 吧

构建的选择

该分支中因编码和平台类型分成三种构建(build):

Unicode 32-bit - recommended for new scripts.
Unicode 64-bit - for increased performance on 64-bit systems.
ANSI 32-bit - better compatibility with some older scripts.

如下载页面的说明所示,大多数用户请选择 Unicode 32-bit,但这个链接的目标文件仅有主程序(即一个 AutoHotkey.exe,适合偏爱绿色版的老用户)。建议直接下载页面开始处的安装包(Installer),其中包含了这三种构建和后面的编译器和离线帮助(英文的,中文帮助请在底部链接处下载)并在安装时选择 Unicode 32-bit 即可。

Unicode 64-bit 仅能运行于 64 位系统,至于比较此时的 32 位构建其性能有增强多少还没看到有比较数据。
ANSI 32-bit 的兼容性主要指运行为 AutoHotkey Basic 编写的脚本而言,新用户无需考虑。

注:若未特别说明,以后本专栏中的代码的测试版本均为 AutoHotkey_L Unicode 32-bit。一般而言,AutoHotkey_L 及其他基于 AutoHotkey_L 分支的版本(如 AutoHotkey_H)应该能正常运行这些代码。

AutoHotkey v2(不推荐)

AutoHotkey v2 由 Lexikos 根据 Chris Mallett(AutoHotkey Basic 作者)对 AutoHotkey 未来的计划基于 AutoHotkey_L 代码开发,目前仍在测试过程中,AutoHotkey v2 只有 Unicode 构建(含 32 和 64 位)。目前在开发过程中的许多新特性都会合并到 AutoHotkey_L 中。

开发状态:它正在调整语法(带来不兼容的许多变化)和功能,包含了许多细节改进。由于许多细节仍在调整中、功能和语法尚未定型,文档也严重过时,且使用这个版本后您可能需要在每个新版发布时修改自己的代码,同时也无法直接执行论坛上大量的脚本。

对于普通用户及常规用途:目前该分支语法和功能尚未定型,较 v1.1 的更新情况也未全部写入日志,且相应的文档过时,所以不推荐日常使用

对于其他用户:该分支将很可能是 AutoHotkey 第三代(尽管版本为 v2),虽然目前含有一些缺陷,不过已经可以使用,所以欢迎有经验的老用户和开发者下载测试。关于这个分支的语法、功能等的讨论正在官网热烈进行,如果希望了解目前状态或反馈相关的建议、意见(作者也活跃其中):

使用 AutoHotkey(Basic 至 _L)那么长时间以来,您不是一直在抱怨这个吐嘈那个吗,还等什么呢?与作者直接交流吧,也许正式版出来时其中某个功能就是您的提议呢。

AutoHotkey_H(不推荐)

AutoHotkey_H 是由 HotkeyIt 合并了原有 AutoHotkey.dll(介绍见下文)并在AutoHotkey_L(及 AutoHotkey v2)基础上开发的增强分支。它没有使用自己的版本号,一般与 AutoHotkey_L(及 AutoHotkey v2)并行开发,最近更新时间为 2013-08-11。

一般提到 AutoHotkey_H 时,实际上包含了 AutoHotkey.dll 和 AutoHotkey.exe (H 版本) 及相关文件。其中:

  • AutoHotkey.dll 最初由 tinku99 开发,已由 HotkeyIt 合并至 AutoHotkey_H,之后新增了简化版本(AutoHotkeyMini.dll)。其他语言通过 DLL 接口或 COM 接口利用该文件可执行 AutoHotkey 代码,而 AutoHotkey_L 也可通过它实现多线程。
  • AutoHotkey.exe(H 分支)是 HotkeyIt 在 AutoHotkey_L(及 AutoHotkey v2)基础上主要增加线程和结构相关函数并增强了 DLL 调用功能的分支,详细的新增功能及细节变化请参阅其帮助。
  • AutoHotkey v1(基于 AutoHotkey_L)可执行文件包含了 ANSI 和 Unicode 32 位版本及 Unicode 64 位版本。
  • AutoHotkey V2(基于 AutoHotkey v2)可执行文件包含了 Unicode 32 和 64 位版本。

它实现了多线程、支持动态运行 AutoHotkey 代码、在 #Includes 中使用通配符或动态 #Includes、简化了 DLL 尤其是 Windows API 的调用,适用于已经使用 AutoHotkey 较长时间的有经验用 户。其中的帮助仅说明了在 AutoHotkey_L 外有修改或增强部分的内容,所以需要与 AutoHotkey_L 帮助一起使用。 AutoHotkey_H 功能上有所增强,不过用户群较小(可能测试不充分)、不易获得支持,同时帮助文件比较粗糙(尽管有译成中文的版本),更新较不稳定。因此,新用户无需考虑。

这个分支的水很深,不过如果您有一定编程经验,我觉得可以试试。

不活跃分支

用于 Windows/Linux/Macintosh 的 .NET/Mono 分支。

这个分支由 polyethene 和其他贡献者使用 C# 为 .NET 和 Mono 而完全重写以实现 AutoHotkey 的跨平台的分支。使用它您能把脚本编译为平常的 .NET 编译语言,因此需要 .NET 框架或 Mono 才能安装。IronAHK 目前尚处于 Alpha 测试阶段,并且不幸的是,目前开发似乎暂停较长时间了。还有许多事情需要做。
尽管这是个很有前景的项目,不过当前不建议初学者安装使用。

用于 Pocket PC、WinCE 和 Smartphone 的 AutoHotkey 分支。

用于 Linux/Wine 的版本。

其他历史分支

对于出现过的其他历史版本,下面尽可能用一句话简单介绍以供了解,不建议使用。

  • AutoHotkey Basic(经典版)

AutoHotkey Basic 包括从首个测试版本至 1.0.48.05(更新于 2009-09-25)的所有版本,更新记录请参阅 AutoHotkey Basic 更新记录。主要由 Chris Mallett 开发,在 2009 年更新到 1.0.48.05 版本后停止更新。作者在 2010 年宣布 AutoHotkey_L 为它的后续分支。

关于名称:作者 Chris Mallett 称之为“AutoHotkey Basic”,多数社区用户也使用”Classic“,论坛上有些时候会表示为“Vanilla”(我感觉这个是代号),中文用户多接受“经典版”(符合其内涵)。与 AutoHotkey_L 被称为“AutoHotkey 1.1”相对应,有时该分支也笼统的使用“AutoHotkey 1.0”代称。
注:由于这个分支作者已停止开发、论坛提问也不容易获得支持,同时不包含 Unicode、64位系统及其他重要的特性,目前仅有少数老用户及一些旧的脚本在使用。

  • AutoHotkey.dll

AutoHotkey.dll 是 AutoHotkey 的动态链接库版本,已合并至 AutoHotkey_H。

AutoHotkey.dll 它允许被 AutoHotkey_L(及基于该分支的版本)加载多次以实现多线程和使用它的导出函数和内置功能;同时可向其他编程和脚本语言嵌入了 AutoHotkey 解释器而打开了 AutoHotkey 的世界。通过它可以在其他许多语言中使用 AutoHotkey 的功能,如 C#、C++、VB、Python、Javascript 等,只要它们能能加载 DLL 或使用 COM 接口。如果您可以在 Excel 或 Word 宏中执行 AutoHotkey 代码,这是不是很酷?这是它的内置功能.

  • AutoHotkeyU

AutoHotkeyU 是由 jackieku 开发的 AutoHotkey_L 的 Unicode 版本,已合并回 AutoHotkey_L(Revision 41)。

  • AutoHotkey64

AutoHotkey64 是由 fincs 开发的 AutoHotkey_L 的 64 位版本(并增加 COM 支持),已合并回 AutoHotkey_L(Revision 53)。

小结

看到这里您是不是后悔了,长长的篇幅看下来,我就没有选择啊?哈哈,您也不会再为版本困惑了嘛。

参考: What AutoHotkey version should I choose?

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,012评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,628评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,653评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,485评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,574评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,590评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,596评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,340评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,794评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,102评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,276评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,940评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,583评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,201评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,441评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,173评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,136评论 2 352

推荐阅读更多精彩内容

  • 注:中文应用部分仍需更新。转者按:本文属于零基础入门专题教程,原发表于 Download!网络密技王第三期,后转载...
    amnesiac阅读 3,372评论 0 6
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,647评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,008评论 25 707
  • 今天跟一群人一起完了这个古老的游戏。 银行家希望我们写一篇,有喜欢后的感想。 我也是第一次玩,感觉有些混乱,也有一...
    塞其兑阅读 160评论 0 0