1.4AutoHotkey的发展历史

AutoHotkey的发展历史是一段很有趣的历史,以前都是零零碎碎的,在这里,我刚好结和这次课程把他的历史给串起来方便大家有一个系统性的认识。

一、发展简史

       下面以我个人的视角简述 AutoHotkey 发展的大致历程,由于早期许多事件我没有亲身经历,疏漏在所难免,欢迎评论中留言补充。简录于此,仅做纪念。如未特别说明,以下提到的人皆以其ID 表示,而文章的链接也尽可能提供原始链接(可能失效)。

1.4AutoHotkey的发展历史

       AutoHotkey 各分支演进图

       2003年AutoHotkey诞生,创造者是Chris Mallett。

       2003年早些时候,Chris Mallett参与了AutoIt v2(当时AutoIt是开源语言)的开发,提议在AutoIt v2中集成热键支持,但是未得到AutoIt团队认可。

       2003年11月10日,Chris Mallett决定单干,公开发布了AutoHotkey的首个测试版本。他以AutoIt v2的语法为基础并在一些命令和编译器中使用AutoIt v3的源码开始编写自己的程序。

       (插曲)这时候,AutoIt团队认为Chris Mallett窃取了AutoIt的源代码并与自己竞争,随后,AutoIt v3的许可从GPL切换为闭源。

       2008 年 7 月开始,AutoHotkey_L(发布于 2008-07-18)( 推动者Lexikos,当时为旁支,目前成为主分支)开发进入活跃期,之后合并 AutoHotkey64(推动者fincs)、AutoHotkeyU(推动者jackieku)(添加 64 位和 Unicode 支持)并增加 COM、对象等支持。

       2009 年 9 月,AutoHotkey 到了 1.0.48.05 版本(当前所称的经典版),但更新此时进入停滞状态。同期出现了大量小众的Autohotkey版本,由poly-ethene推动的IronAHK、HotKeyIt推动的AutoHotkey_H、tinku99的AutoHotkey.dll等

       2010 年 10 月,Chris Mallett表示不再开发并宣布 AutoHotkey_L 为其后续分支。

       2011年:“ Lexikos”开始开发AutoHotkey v2-alpha。

       2021年:AutoHotkey v2-beta版本问世,可以说发展极度缓慢,不过编程语言发展缓慢是常态。同年,国内天黑请闭眼将beta版本与H版进行了整合,zj1d对beta版本进行了中文化尝试。

       2022年: Lexikos”发布了AutoHotkey v2-rc版本。

       2022年: Lexikos”发布了AutoHotkey v2正式版本,至此AutoHotkey V1.1和V2.0版本进入并行时代。

二、分支介绍

       对于新人我还是有必要简要介绍各分支(这是他们的主要困惑之一),以便对这些名称及它们的含义有个清晰的认识,同时明白自己选择的原因(顺便也了解些典故)。

(一)AutoHotkey v1(推荐)

       AutoHotkey v1指主要由 Lexikos 在原 AutoHotkey Basic(见下文)源码基础上开发的分支,具体包括从1.0.48.05 L4 版本号 至今的所有版本。有时会被笼统的称为“AutoHotkey 1.1“。

       1、它在 AutoHotkey Basic 基础上增加或增强的主要功能:

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

       对于中文用户,这些功能的增强是我们选择的重要原因之一,如果不支持 Unicode ,脚本的编写过程将会非常痛苦。

       2、主流的支持

       功能的增强是其中一个方面,主流的支持则是另一个重要原因。与其他比较,AutoHotkey v1是目前 AutoHotkey 社区用户使用的主流分支。 v1 版本仍在更新,包括修复缺陷和完善功能,遇到问题时能方便从社区或相关群组获得支持。

(二)AutoHotkey v2(次推荐)

       AutoHotkey v2 由 Lexikos 根据 Chris Mallett(AutoHotkey Basic 作者)对 AutoHotkey 未来的计划基于 AutoHotkey_L 代码开发,从2011年的alpha版本到2021年的beta版本,目前已发布正式版本。

       1、它在 AutoHotkey v1.1基础上增加或调整的主要功能:

  • 删除了“命令”的概念,包括与命令配套的相关内容,全部由函数代替;
  • 对GUI、对象部分进行了类化的改进。

       就我个人感受,目前V2最大的改进就是剔除了大量“过时”的语法,性能上的改进尚待考证。

       2、相对缺陷

       虽然该分支语法和功能已定型,较 v1.1 可参考资源相对较少。

(三)AutoHotkey_H(不推荐)

       AutoHotkey_H 是由 HotkeyIt 合并了原有 AutoHotkey.dll(介绍见下文)并在AutoHotkey v1(及 AutoHotkey v2)基础上开发的增强分支。它没有使用自己的版本号,一般与 AutoHotkey v1(及 AutoHotkey v2)并行开发。一般提到 AutoHotkey_H 时,实际上包含了 AutoHotkey.dll 和 AutoHotkey.exe (H 版本) 及相关文件。其中:

       1、AutoHotkey.dll 最初由 tinku99 开发,已由 HotkeyIt 合并至 AutoHotkey_H,之后新增了简化版本(AutoHotkeyMini.dll)。其他语言通过 DLL 接口或 COM 接口利用该文件可执行 AutoHotkey 代码,而 AutoHotkey_L 也可通过它实现多线程。

       2、AutoHotkey.exe(H 分支)是 HotkeyIt 在 AutoHotkey v1(及 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 功能上有所增强,不过用户群较小(可能测试不充分)、不易获得支持,同时帮助文件比较粗糙(尽管有译成中文的版本),更新较不稳定。因此,新用户无需考虑。

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

四)不活跃分支

       1、IronAHK分支

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

       2、AutoHotkey Mobile

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

       3、AHKLinux

       用于 Linux/Wine 的版本。

五)其他历史分支

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

       1、AutoHotkey Basic(经典版)

        AutoHotkey Basic 包括从首个测试版本至 1.0.48.05(更新于 2009-09-25)的所有版本,主要由 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位系统及其他重要的特性,目前仅有少数老用户及一些旧的脚本在使用。

       2、AutoHotkey.dll

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

       3、AutoHotkeyU

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

       4、AutoHotkey64

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

给TA捐赠
共{{data.count}}人
人已捐赠
其他教程

电脑软件安装过程文档

2019-12-21 9:47:29

其他

最高级的AutoHotkey重试源代码结构20191221.docx

2020-1-13 22:56:53

12 条回复 A文章作者 M管理员
  1. 黄盼

    ✗棒棒的✗

  2. ahxw

    ✗棒棒的✗

  3. 云的彼岸

    ✗棒棒的✗

  4. OO

    ✗棒棒的✗

  5. 梦醒时分

    ✗棒棒的✗

  6. 胜舟

    ?

  7. oeasy

    这个连发展史都要收费就有些说不过去了

  8. user14160

    感谢分享

  9. 呆呆

    good

  10. 风纵

    GOOD

个人中心
购物车
优惠劵
有新私信 私信列表
搜索