最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【AutoHotkey從入門到精通】1.4AutoHotkey的發(fā)展歷史

2023-03-09 11:18 作者:河許人  | 我要投稿

AutoHotkey的發(fā)展歷史是一段很有趣的歷史,以前都是零零碎碎的,在這里,我剛好結(jié)和這次課程把他的歷史給串起來方便大家有一個系統(tǒng)性的認(rèn)識。

一、發(fā)展簡史

? ? ? ?下面以我個人的視角簡述 AutoHotkey 發(fā)展的大致歷程,由于早期許多事件我沒有親身經(jīng)歷,疏漏在所難免,歡迎評論中留言補(bǔ)充。簡錄于此,僅做紀(jì)念。如未特別說明,以下提到的人皆以其ID 表示,而文章的鏈接也盡可能提供原始鏈接(可能失效)。

? ? ? ?AutoHotkey 各分支演進(jìn)圖

? ? ? ?2003年AutoHotkey誕生,創(chuàng)造者是Chris Mallett。

? ? ? ?2003年早些時候,Chris Mallett參與了AutoIt v2(當(dāng)時AutoIt是開源語言)的開發(fā),提議在AutoIt v2中集成熱鍵支持,但是未得到AutoIt團(tuán)隊認(rèn)可。

? ? ? ?2003年11月10日,Chris Mallett決定單干,公開發(fā)布了AutoHotkey的首個測試版本。他以AutoIt v2的語法為基礎(chǔ)并在一些命令和編譯器中使用AutoIt v3的源碼開始編寫自己的程序。

? ? ? ?(插曲)這時候,AutoIt團(tuán)隊認(rèn)為Chris Mallett竊取了AutoIt的源代碼并與自己競爭,隨后,AutoIt v3的許可從GPL切換為閉源。

? ? ? ?2008 年 7 月開始,AutoHotkey_L(發(fā)布于 2008-07-18)( 推動者Lexikos,當(dāng)時為旁支,目前成為主分支)開發(fā)進(jìn)入活躍期,之后合并 AutoHotkey64(推動者fincs)、AutoHotkeyU(推動者jackieku)(添加 64 位和 Unicode 支持)并增加 COM、對象等支持。

? ? ? ?2009 年 9 月,AutoHotkey 到了 1.0.48.05 版本(當(dāng)前所稱的經(jīng)典版),但更新此時進(jìn)入停滯狀態(tài)。同期出現(xiàn)了大量小眾的Autohotkey版本,由poly-ethene推動的IronAHK、HotKeyIt推動的AutoHotkey_H、tinku99的AutoHotkey.dll等

? ? ? ?2010 年 10 月,Chris Mallett表示不再開發(fā)并宣布 AutoHotkey_L 為其后續(xù)分支。

? ? ? ?2011年:“ Lexikos”開始開發(fā)AutoHotkey v2-alpha。

? ? ? ?2021年:AutoHotkey v2-beta版本問世,可以說發(fā)展極度緩慢,不過編程語言發(fā)展緩慢是常態(tài)。同年,國內(nèi)天黑請閉眼將beta版本與H版進(jìn)行了整合,zj1d對beta版本進(jìn)行了中文化嘗試。

? ? ? ?2022年: Lexikos”發(fā)布了AutoHotkey v2-rc版本。

? ? ? ?2022年: Lexikos”發(fā)布了AutoHotkey v2正式版本,至此AutoHotkey V1.1和V2.0版本進(jìn)入并行時代。

二、分支介紹

? ? ? ?對于新人我還是有必要簡要介紹各分支(這是他們的主要困惑之一),以便對這些名稱及它們的含義有個清晰的認(rèn)識,同時明白自己選擇的原因(順便也了解些典故)。

(一)AutoHotkey v1(推薦)

? ? ? ?AutoHotkey v1指主要由 Lexikos 在原 AutoHotkey Basic(見下文)源碼基礎(chǔ)上開發(fā)的分支,具體包括從1.0.48.05 L4 版本號 至今的所有版本。有時會被籠統(tǒng)的稱為“AutoHotkey 1.1“。

? ??? ?1、它在 AutoHotkey Basic 基礎(chǔ)上增加或增強(qiáng)的主要功能:

  • 提供 Unicode、COM 和 64 位原生支持

  • 支持各種文本編碼

  • 對象(可擴(kuò)展的聯(lián)合數(shù)組)

  • 交互式調(diào)試支持

  • 增強(qiáng)的錯誤處理

  • 面向?qū)ο笪募?I/O

? ? ? ?對于中文用戶,這些功能的增強(qiáng)是我們選擇的重要原因之一,如果不支持 Unicode ,腳本的編寫過程將會非常痛苦。

? ? ? ?2、主流的支持

? ? ? ?功能的增強(qiáng)是其中一個方面,主流的支持則是另一個重要原因。與其他比較,AutoHotkey v1是目前 AutoHotkey 社區(qū)用戶使用的主流分支。 v1 版本仍在更新,包括修復(fù)缺陷和完善功能,遇到問題時能方便從社區(qū)或相關(guān)群組獲得支持。

(二)AutoHotkey v2(次推薦)

? ? ? ?AutoHotkey v2 由 Lexikos 根據(jù) Chris Mallett(AutoHotkey Basic 作者)對 AutoHotkey 未來的計劃基于 AutoHotkey_L 代碼開發(fā),從2011年的alpha版本到2021年的beta版本,目前已發(fā)布正式版本。

? ? ? ?1、它在 AutoHotkey v1.1基礎(chǔ)上增加或調(diào)整的主要功能:

  • 刪除了“命令”的概念,包括與命令配套的相關(guān)內(nèi)容,全部由函數(shù)代替;

  • 對GUI、對象部分進(jìn)行了類化的改進(jìn)。

? ? ? ?就我個人感受,目前V2最大的改進(jìn)就是剔除了大量“過時”的語法,性能上的改進(jìn)尚待考證。

? ? ? ?2、相對缺陷

? ? ? ?雖然該分支語法和功能已定型,較 v1.1 可參考資源相對較少。

(三)AutoHotkey_H(不推薦)

? ? ? ?AutoHotkey_H 是由 HotkeyIt 合并了原有 AutoHotkey.dll(介紹見下文)并在AutoHotkey v1(及 AutoHotkey v2)基礎(chǔ)上開發(fā)的增強(qiáng)分支。它沒有使用自己的版本號,一般與 AutoHotkey v1(及 AutoHotkey v2)并行開發(fā)。一般提到 AutoHotkey_H 時,實際上包含了 AutoHotkey.dll 和 AutoHotkey.exe (H 版本) 及相關(guān)文件。其中:

? ? ? ?1、AutoHotkey.dll 最初由 tinku99 開發(fā),已由 HotkeyIt 合并至 AutoHotkey_H,之后新增了簡化版本(AutoHotkeyMini.dll)。其他語言通過 DLL 接口或 COM 接口利用該文件可執(zhí)行 AutoHotkey 代碼,而 AutoHotkey_L 也可通過它實現(xiàn)多線程。

? ? ? ?2、AutoHotkey.exe(H 分支)是 HotkeyIt 在 AutoHotkey v1(及 AutoHotkey v2)基礎(chǔ)上主要增加線程和結(jié)構(gòu)相關(guān)函數(shù)并增強(qiáng)了 DLL 調(diào)用功能的分支,詳細(xì)的新增功能及細(xì)節(jié)變化請參閱其幫助。

? ? ? ?AutoHotkey v1(基于 AutoHotkey_L)可執(zhí)行文件包含了 ANSI 和 Unicode 32 位版本及 Unicode 64 位版本。

? ? ? ?AutoHotkey V2(基于 AutoHotkey v2)可執(zhí)行文件包含了 Unicode 32 和 64 位版本。

? ? ? ?它實現(xiàn)了多線程、支持動態(tài)運(yùn)行 AutoHotkey 代碼、在 #Includes 中使用通配符或動態(tài) #Includes、簡化了 DLL 尤其是 Windows API 的調(diào)用,適用于已經(jīng)使用 AutoHotkey 較長時間的有經(jīng)驗用 戶。其中的幫助僅說明了在 AutoHotkey_L 外有修改或增強(qiáng)部分的內(nèi)容,所以需要與 AutoHotkey_L 幫助一起使用。 AutoHotkey_H 功能上有所增強(qiáng),不過用戶群較?。赡軠y試不充分)、不易獲得支持,同時幫助文件比較粗糙(盡管有譯成中文的版本),更新較不穩(wěn)定。因此,新用戶無需考慮。

? ? ? ?這個分支的水很深,不過如果您有一定編程經(jīng)驗,我覺得可以試試。

四)不活躍分支

? ? ? ?1、IronAHK分支

? ? ? ?用于 Windows/Linux/Macintosh 的 .NET/Mono 分支。這個分支由 polyethene 和其他貢獻(xiàn)者使用 C# 為 .NET 和 Mono 而完全重寫以實現(xiàn) AutoHotkey 的跨平臺的分支。使用它您能把腳本編譯為平常的 .NET 編譯語言,因此需要 .NET 框架或 Mono 才能安裝。IronAHK 目前尚處于 Alpha 測試階段,并且不幸的是,目前開發(fā)似乎暫停較長時間了。還有許多事情需要做。盡管這是個很有前景的項目,不過當(dāng)前不建議初學(xué)者安裝使用。

? ? ? ?2、AutoHotkey Mobile

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

? ? ? ?3、AHKLinux

? ? ? ?用于 Linux/Wine 的版本。

五)其他歷史分支

? ? ? ?對于出現(xiàn)過的其他歷史版本,下面盡可能用一句話簡單介紹以供了解,不建議使用。

? ? ? ?1、AutoHotkey Basic(經(jīng)典版)

? ? ? ? AutoHotkey Basic 包括從首個測試版本至 1.0.48.05(更新于 2009-09-25)的所有版本,主要由 Chris Mallett 開發(fā),在 2009 年更新到 1.0.48.05 版本后停止更新。作者在 2010 年宣布 AutoHotkey_L 為它的后續(xù)分支。關(guān)于名稱:作者 Chris Mallett 稱之為“AutoHotkey Basic”,多數(shù)社區(qū)用戶也使用”Classic“,論壇上有些時候會表示為“Vanilla”(我感覺這個是代號),中文用戶多接受“經(jīng)典版”(符合其內(nèi)涵)。與 AutoHotkey_L 被稱為“AutoHotkey 1.1”相對應(yīng),有時該分支也籠統(tǒng)的使用“AutoHotkey 1.0”代稱。

? ? ? ?注:由于這個分支作者已停止開發(fā)、論壇提問也不容易獲得支持,同時不包含 Unicode、64位系統(tǒng)及其他重要的特性,目前僅有少數(shù)老用戶及一些舊的腳本在使用。

? ? ? ?2、AutoHotkey.dll

? ? ? ?AutoHotkey.dll 是 AutoHotkey 的動態(tài)鏈接庫版本,已合并至 AutoHotkey_H。AutoHotkey.dll 它允許被 AutoHotkey_L(及基于該分支的版本)加載多次以實現(xiàn)多線程和使用它的導(dǎo)出函數(shù)和內(nèi)置功能;同時可向其他編程和腳本語言嵌入了 AutoHotkey 解釋器而打開了 AutoHotkey 的世界。通過它可以在其他許多語言中使用 AutoHotkey 的功能,如 C#、C++、VB、Python、Javascript 等,只要它們能能加載 DLL 或使用 COM 接口。如果您可以在 Excel 或 Word 宏中執(zhí)行 AutoHotkey 代碼,這是不是很酷?這是它的內(nèi)置功能。

? ? ? ?3、AutoHotkeyU

? ? ? ?AutoHotkeyU 是由 jackieku 開發(fā)的 AutoHotkey_L 的 Unicode 版本,已合并回 AutoHotkey_L(Revision 41)。

? ? ? ?4、AutoHotkey64

? ? ? ?AutoHotkey64 是由 fincs 開發(fā)的 AutoHotkey_L 的 64 位版本(并增加 COM 支持),已合并回AutoHotkey_L(Revision 53)。


【AutoHotkey從入門到精通】1.4AutoHotkey的發(fā)展歷史的評論 (共 條)

分享到微博請遵守國家法律
永修县| 朔州市| 凤冈县| 霞浦县| 平南县| 西吉县| 建阳市| 镶黄旗| 任丘市| 东宁县| 洞头县| 佛教| 汉沽区| 揭西县| 新竹市| 潜山县| 全州县| 昭觉县| 靖宇县| 大丰市| 日照市| 巴东县| 库尔勒市| 海原县| 枣强县| 额济纳旗| 轮台县| 无锡市| 广元市| 泰顺县| 措美县| 射洪县| 子长县| 宿州市| 原平市| 盈江县| 安康市| 新河县| 泽库县| 甘谷县| 夏邑县|