[转载]AutoIT3 vs AutoHotkey

本文对比了AutoHotkey与AutoIt两种自动化脚本语言的特点与优劣。AutoHotkey以其简洁直观的语法和良好的社区支持受到好评,而AutoIt则在COM/OLE/ActiveX的支持方面更胜一筹。最终选择取决于个人习惯和具体需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

=

=from:http://blog.sina.com.cn/s/blog_46dac66f010005cr.html

 

作者:xbeta 版本:070514/060904 出自:善用佳软http://xbeta.info

两者皆为此中翘楚,得一即可安天下。然兴致而来,不妨搜一些比较结果。

  我最早听说的是AutoIt3,看了看,没用。后来了见了AutoHotkey,也没用。再后来用的时候,发现AutoHotkey更简单,并且vim自带了语法着色文件,就一直用它。后经yul88补充启示,就有了这篇文章。

* 官方的解释
  在AutoHotkey的help文件中,搜一下AutoIt,可以发现好几处内容。并且,有一个专门的Notes for AutoIt v2 Users,比较详细地讲了两者的兼容和区别。此外,在help的第一节,AutoHotkey介绍的标题下,还有


* 简译一段
  多人在版上说起AutoHotKey,我来说说AutoIt3。它是AutoHotKey的大哥。AutoHotKey是AutoIt v2 的仿制,并做了强化。但AutoIt3是新品,更强大,有很多改进(COM、GUI兼容,正则表达式)。因此,应了解一下AutoIt3。……AutoHotKey的开发者是原AutoIt2成员。这两个项目之间可能有些不快。AutoIt3后来不再GPL,来保护代码。你可以下载到AutoIt2的代码,想要AutoIt3,就要做保证。…… AutoHotKey相当于AutoIt2++……猜:他想扩展AutoIt2,但其他人关注于AutoIt3(增加了很多功能:GUIs, tray icons, even with their own right click menus, calling COM objects directly from the AutoIt scripts and a lot more stuff)
  {英文原文}

* yul88的观点
  我觉得,AutoHotKey的语法太不规范了,使用数组很头疼。如果脚本里面的控制比较复杂的话,还是用AutoIt比较好。

* yonken的评价
  至于说到究竟哪种语言比较好,我的想法是其实应该看个人习惯和你要解决的问题了,毕竟这是两种不同的脚本语言,自然在语法和功能级别上有所不同(但两者同样都能解决大部分的自动化操作问题),因此若你曾学习过其他(程序)语言那么你可以选择与你所熟悉的语言相近的一个。
  我的个人意见是如果你学过BASIC(VB),那么可以选择AutoIt,否则可以考虑AutoHotkey,因为它的语法简单而且直观。
  {原文全文}

* yonken荐/译的两篇评论
  另外,你可以考虑参考一下老外对这两者的讨论:
http://www.blogcn.com/user48/yonken/blog/26348290.html
http://www.blogcn.com/user48/yonken/blog/26348321.html
摘引如下:

  ……其实根本没有所谓的AUT vs. AHK 之类的事。我有点怀疑(楼主的企图)。Chris(AutoHotkey开发者)刚开始想要(和John B.讨论)搞热键功能的时候他得到的只是冷漠的回应,现在AHK越来越受欢迎了却有人(这些人可能现在是/曾经是AUT用户)来要求两种语言的合并?)
  谁会把自己的亲生孩子杀掉?会是Chris?还是John??还是安心让他们各自开发吧。BTW:这两种语言都是开源的,如果你有兴趣的话不妨自己开发一个,比如说AutoHITkey ??
  AHK的语法更加简单,而(在多数情况下)实现同样的功能却只要键入更少的内容。对我们这种懒人来说,还有什么更好不过的?……

 

AHK相对AutoIt的优越之处
  语法上稍微比较容易理解,特别是GUI部分的语法更加容易而且表现很好。
  更加友好/更好的论坛支持。
  获得源码的途径非常明显。而AutoIt “开发小组”似乎对获取新源码的行为设置了一些“障碍”。

AutoIt 相对 AHK的优越之处
  优点在于拥有更多而且较好的像修改版SciTe(非常棒)和AutoMacroGenerator(对很多任务的实现要比AU3recorder好多了)这样的用户创建工具。众多的工具一直都在更新开发中。至于会有这么多针对AutoIt 的工具出现的另外一个原因可能是因为它的知名度和强大的用户功能吸引了更多的人去开发(AutoIt这个词早就出现在人们的视力范围内)。
  当然,我们不能这么片面地分析, SmartGui (Gui stealer) 就是AHK的一个值得引以为傲的示例工具。
  AutoIt的开发级别恐怕更加高级(比如说ActiveX/OLE/COM),但这也往往意味着要有复杂而且较难的语法来实现,使得用户只好频繁询求帮助。

  我想如果AutoHotKey融合CS-Script的话,那么平衡两方力量的天平将可能倾斜。CS-Script是一种C# 脚本语言,它可以用来实现很多事情,比如MAKE DLLs 以及一切C# 能实现的功能。我认为之所以众多用户投奔AutoIt怀抱的一个重要原因就是它的“强大”(这也是为什么那么多用户工具针对它来开发的原因),但是如果有一天AutoIt 失去了它的“强大”优势那么将会有好戏看了。
  也许AutoHotKey与CS-Script (C#)的逐渐融合将会吸引更多的开发人员,而且更多的用户工具也将为AutoHotKey开发。 AutoHotKey 本身的优点例如语法上较易理解和更加友好可能会受到更多人的喜爱。所以很难说将来将会怎样,但那肯定是值得期待的。
  我觉得其实大家对 AutoHotKey 和 AutoIt 的比较是无法避免的。这两种语言如此相似,许多人都曾在选择最好的一个之前试过这两种语言,有些人可能会用了某个之后一段时间然后又换回原来的,有些人甚至可能会有第四次的选择。
  ……用AutoHotkey 来解决问题往往更加轻松、更加简单,而且更加直观。即使我用AutoIt和 AutoHotkey 脚本来实现同一个功能,往往是用AutoHotkey写的脚本更容易让人理解或者更容易实现。尽管AutoIt 对COM/OLE/ActiveX的支持使得它在一些应用面上占据了优势,但我还是看重AutoHotkey众多细节方面的优点。对于多数自动化任务来说AutoHotkey都是较好的选择。如果有一天AutoHotkey也出一个支持COM/OLE/ActiveX的版本的话(其实结合VBscript/JScript 和 AutoHotkey也是一样能实现),那么我想AutoHotkey将肯定会在这场竞争中占据优势。
  AutoHotkey在某种程度上来说带有一点Javascript的味道,我觉得这样不错。我认为AutoHotkey就是应该参考Javascript/JScript/JScript.NET 的语法。VB.NET的变化越大或者本来用VB.NET后来转而投奔C#、Javascript、Jscript、JScript.NET等语言怀抱的人数越多,则VBScript 和 VBA的未来就越不太让人看好。………总体来说,我觉得AUT这么像Visual Basic 应该算是一个失误。
  还有,我发现就算用最垃圾的记事本来编写AutoHotkey 脚本都是很轻松的一件事,而对AutoIt来说,如果不是有强大的SciTe4AutoIt 版,那么用记事本来编写AutoIt 脚本简直就是折磨。
  ……我始终认为随着AutoHotkey 越来越强大(如果它能支持COM/OLE/ActiveX则更加完美了),它迟早会变得更加受欢迎的。


* 再补几篇老外的讨论

* 再谈一下编辑器的支持
  等用了vim之后,最初在AHK的论坛上发现有ahk语法文件,于是就用它了。
  后来经yul88提醒,autoit3的也有,呵呵,是在vim站点——这才是正道,为什么没想到呢?
  当然,编autoit3还是用改造后的 SciTE4AutoIt(点击这里) 最好,有折叠、自动补全、函数提示:

 

=

=

 

简介   AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。 编辑本段 功能   通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏 或者使用宏录制器来生成;   为键盘,游戏操纵杆和鼠标创建 热键。 事实上任何的按键、按钮或组合键都可以被设置为热键;   当键入您自定义的缩写时可以 扩展缩写。例如, 键入“btw”就可以自动扩展为“by the way”;   创建自定义的数据输入表格、用户界面、菜单等。详情请看 图形界面 部分;   映射 键盘、游戏操纵杆和鼠标上的按键或按钮;   运行现有的AutoIt v2脚本并用 新功能 来增强它们;   将脚本文件编译 成EXE可执行文件,使得程序在没有安装AutoHotkey的机器上得以运行;   借助 相关工具 以实现更强大的功能。   更多关于热键的说明   AutoHotkey 可令键盘、游戏操纵杆和鼠标的所有潜能都发挥出来。例如,除了典型的Control、Alt和Shift键之外,你还可以定义Win键(徽标键)和Capslock键作为调节键。 而实际上你还可以设置任意的键盘按键或鼠标按键作为调节键。详细内容请看 高级热键 部分。   其他功能   调节音量、设置静音,以及其他 关于声卡的设置;   令指定窗口变为 透明,顶层窗口,或改变 外形;   用 游戏操纵杆 或 键盘 代替鼠标;   监控 您的系统。例如,当您不希望见到的窗口出现时自动关闭它们;   获取并改变 剪贴板的内容, 包括从资源管理器中复制的文件的名称;   关闭或屏蔽 Windows自有的快捷键,例如Win+E和Win+R;   取替Alt-Tab (通过按键、鼠标滚轮或按钮)从而减轻RSI(肢体重复性劳损 );   使用您喜欢的图标、工具提示(ToolTip)、菜单项目和子菜单来自定义 托盘图标菜单 ;   显示 对话框、工具提示(Tooltips)、气球提示 以及 弹出菜单,与用户交互;   执行脚本动作来 响应 系统关闭或注销;   检测系统 空闲时间。例如, 在系统空闲的时候执行高CPU负荷的任务;   通过检测 图像 和 象素色彩来自动执行游戏中的动作;   读取、写入 以及 解释 文本文件比起其他语言更容易;   针对一组与 通配符 匹配的文件进行操作;   可对 注册表 和 INI文件 进行操作。   在 Windows 95/98/Me 下的一些限制:   一些 高级功能 -- 例如鼠标热键和 热字串 -- 在Win9x 平台将失效。   你只要有想像力,它可以完成更多工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值