Tuesday, May 5, 2020

AutoIt3和按键精灵的功能对比

从易用性上讲
按键精灵注重易用性,是傻瓜型的软件,一个完全没有编程基础的人一样可以用按键精灵编写出很好用的脚本
AutoIt更注重功能型,是脚本型的软件,对于没有写过程序的人来说,要能上手写AutoIt的脚本会稍微有点难度
按键精灵有屏幕录制的功能,并且可以很方便地让脚本仅仅对某个窗口有效,所有这一起做起来都很简单,点点鼠标就可以了。
AutoIt没有官方的屏幕录制并生产Script的工具(个人见解:ScriptWriter即是),但是有AutoIt Fans已经写出了这样的工具;它也可以实现仅仅对某个窗口有效,但是需要自己去编程!
另外,对中国人来说,AutoIt至今没有中文版的帮助文件也从某种程度上削弱了它的易用性
结论:从易用性上讲按键精灵更胜一筹
(AutoIt的作者并没有想把AutoIt做得非常易用,他们更注重的是功能性)( 本文出处: http://bbs.yidabu.com/thread-24-1.html )
从功能性上讲
按键精灵5.6比2.65多了VBScript的支持,从功能性上讲是增强了不少,但是从某种意义上讲也削弱了它的易用性。它还可以把脚本变成可执行文件。
AutoIt从3.1版开始支持VBScript,另外它的AutoItX更是支持在VBScript等脚本语言里调用AutoIt的东西,它还支持 COM/DLL调用,支持socket,支持stdin/stdout/stderr的读写。把脚本编译成可执行文件更是它很早就提供的功能。另外, AutoIt还支持创建GUI程序(个人见解:KODA,GuiBuilder一类)这些功能都是按键精灵所不具备的。
结论:从功能性上讲AutoIt更胜一筹
(按键精灵的作者显然没有在功能性上下更多的功夫,或者是软件的定位不同所致吧)
从商业角度
AutoIt不是一个商业软件,它是免费的,甚至AutoIt自身的源代码也是提供下载的。连捐助的链接也要在网站上仔细找才能找到。
按键精灵是一个商业软件,需要注册才可以,未注册版本使用会很不爽。并且作者也承接脚本定制的工作。
结论:大多数人更加喜欢AutoIt的方式一些
总结论
AutoIt比按键精灵好,如果你只是偶尔用用,推荐按键精灵;如果你对脚本编写感兴趣或者你立志做一个懒人,推荐AutoIt( 本文出处: http://bbs.yidabu.com/thread-24-1.html )

2.------------------------------------ ----------------------------------------------梦游------------------------ ---------------------------------------------------------------------------------------------------------------------
(引用原话)
前段时间,因为某网游全面封杀“按键精灵”,使得俺的游戏逍遥挂机计划失败,无奈下只好另寻它法,当时有个想法就是尽量找个比较冷门点的脚本软件(“按键精灵”就是树大招风导致现在好多游戏厂商专门对之进行封杀,在此BS下某些国内游戏厂商,不想着怎么更好地提高游戏和服务质量,一天到晚尽顾着搅尽脑汁想着怎么捞钱!),在网上搜索之后,得到一个结果就是AutoIt这个软件。
其实以前也曾经短暂地接触过AutoIt,那时给俺脑海中留下的印象是:这是一个主要应用于编写自动化脚本制作各种软件自动安装程序的软件,其时比较流行的版本是V2.64,在国内,象“JUJU猫宝藏论坛”等一些以开发软件定制安装程序的作者对此颇有研究,并以此定制了一些实用的自动化软件安装工具。
  不管怎么说,试试用着再说。如那时起,花了一段时间从学习研究相关知识,直至后来用AutoIt软件编写出一个相对完善游戏脚本,对于这个软件的特点有了一点体会,再回想起国内有名的“按键精灵”,觉得比较两者之间各自特点,提供给国产软件的开发者,最终进一步完善“按键精灵”这个广受游戏脚本爱好者喜爱的软件,也算是一个有益的参考与借鉴,所谓“他山之石,可以攻玉”是也。
  在此,简要地对比下“按键精灵”与AutoIt这两款软件之间各自特点:
  1. 所面向的用户群
  “按键精灵”基本上绝对部分应用在于游戏辅助脚本,而AutoIt更多的面向于办公自动化应用。“按键精灵”对于脚本编写入门知识水平要求很低,适用于普通大众,AutoIt更倾向于有点编程基础的人。
  2. 软件的易用性
  毫无疑问,“按键精灵”作为国内土生土长的自动化脚本制作工具,在软件的使用界面、中文资料、论坛支持等等方面,比AutoIt要优势很多,尤其是 “按键精灵”的脚本编程器,纯中文的语言环境,为软件的初学者提供了强有效的引导,使得即使一点不懂相关脚本编写适应的人都能编写出简单的应用脚本。这一方面,“按键精灵”做的比较好。
  相形之下,AutoIt是款英文软件,中文资料相对很少,官方的论坛虽然各种帮助信息很丰富,但对于不懂E文的国内同胞来说,想弄明白那一堆E文是什么意思是较吃力的一件事。
  3. 可使用函数数量
  纯属个人的观点:看一个软件的应用面有多广,一个重要方面是看这个软件所能支持的函数集数量的多寡,因此,以下是大略统计了下这两个软件各自提供的函数数量情况:
  “按键精灵”的函数集主要由以下几部分组成:
  (1)软件内置的函数。共有按键函数8个,鼠标控制函数2个、鼠标移动函数5个、模拟鼠标函数16个,控制命令8个,其他函数8个,VBS函数14 个。注:严格意义上控制命令包含的For..EndFor、If…ElseIf…Else…EndIf并不能算是函数,而属于编程语法。
  (2)可以自由调用的VBScrip语言函数。标准VBScrip语言总计包括约92个函数。
  (3)插件函数。官方内置4个插件总计约 个函数。
  此外,“按键精灵”也可以用COM语言规范调用函数,此类由于涉及面比较复杂,不作为统计项。

  Auto函数集也可大致分做3部分:
  (1)软件内置函数。这类函数约359个,其中GUI函数67个。
  (2)UDF(用户定义)函数。AutoIt官方提供的函数集中有相当大比例是用户定义函数,总计约425个函数。这个统计数字并不包含官方网站上提供的可自由下载的其他用户定义函数。此类函数大多是AutoIt的使用和爱好者根据自身的需要和兴趣,自行编写对官方函数集的拓展,应用方向上各方面都有。
  (3)插件。这一部分数量很少,可以忽略不计。
  4. 对于游戏脚本的支持度
  “按键精灵”专门针对游戏脚本编写提供了很有特色的函数,如:FindCenterColor(在屏幕的某个区域从中心开始查找指定的颜色)、FindColorEx(模糊查找颜色)、FindPic(查找图片),以及发送模拟硬件鼠标/键盘信息的函数等等。
  此外,“按键精灵”专门提供了“神盾”这一比较特殊的功能,在某些情形下很有用。
  
  AutoIt官方在这一方面提供的函数比较有限,只简单地提供了Send、PixelChecksum、PixelSearch几个有限的函数支持。(个人观点:出发点不一样,一个是游戏,一个是办公,前面已经说过)
  5. 脚本GUI界面支持
  “按键精灵”软件可以将脚本打包生成的“小精灵”,官方提供了一个相对比较简单的GUI界面,此外,也有爱好者用其他高级语言如Basic/Delphi,甚至是Html语言生成界面供“按键精灵”脚本调用,但这类方法相对要求比较高。
 
  AutoIt官方内置GUI函数约67个,用户定义函数约220个,可谓数量众多。通过这些GUI函数,可以生成包含Windows各种标准控件的用户界面,有好事者甚至提供了XSkin函数包用于建立类似皮肤的效果。
  6. 编译独立脚本支持
  “按键精灵”和AutoIt都提供将脚本编译打包成可执行文件的功能,相比较而言,AutoIt编译后生成的可执行文件更小、更有效率,这一点并不单纯指AutoIt生成的文件小,而是“按键精灵”编译的文件需要支持环境,就是说,虽然生成“按键精灵”编译的文件(小精灵)是一个文件,但当你运行这个编译脚本之后,会自动在文件所在目录下生成其他的文件。举例说明:编写弹出一个对话框显示“世界,你好!”这个程序,AutoIt编译后生成的文件为 201KB,“按键精灵”的为752KB,当运行“按键精灵”后,自动生成文件共14个,累计大小为2.28MB。
  顺便提一句,AutoIt使用UPX软件进行压缩,可能会导致被某些杀毒软件报警(卡8和瑞星貌似是最常见的)。
  7. 脚本的调试侦错
  “按键精灵”的脚本在调试与错误代码定位上做的不够尽如人意,如果脚本出现错误,你很难找到同错误的原因,有时脚本运行出错,但你却得不到任何有帮助的提示信息,甚至只好逐行查找代码。
  
  AutoIt在这方面与大多数高级语言如Delphi的IDE类似,可以提供语法检查等,并提示错误类型、出错代码所在的位置(行、列)等信息,这些信息对于快速定位与修正脚本错误提供了很大帮助,大大提高了脚本编写效率。
  8. 软件的更新与升级
  任何软件都存在一个不断改进和完善的过程,正常情况下一个软件更新得越频繁,说明这个软件越有活力(频繁地DeBug和Patch除外)。
  “按键精灵”V6.0之前的版本,对于结构化编程(或者说用户定义函数)的支持并不好,不能良好地支持带参数、带返回值的函数定义,也没有区分变量的作用范围,这种情况在早期脚本应用比较简单时并没有什么大影响,然而当随着脚本功能越完善、代码量变大之后,这个就变得比较令人头痛了。
  虽然“按键精灵”自V6.0版本之后,对此情况提供了内嵌的VBScript代码块支持,但总体感觉起来还是不太方便。由于考虑到与旧版本的兼容性问题,“按键精灵”在脚本语言中仍旧保留了goto这一为编程所垢病的语句,可能也因此导致不得不采用现在的VBScripBeing...End的方式解决软件的语言功能扩展问题,但个人感觉有点不伦不类。
  相比较之下,AutoIt在版本的升级中(从v2.64版到V3.0版)也遇到有类似的情况,但AutoIt采取了另一种解决办法,那就是断然从脚本的语言体系中去掉Goto语句,对此,官方帮助文件的里有段话对此事作了如下说明:
4. Where is the "goto" command?
Gone. It's evil. No, you can't ask why - it just is. It's like that lump of rock they find in the microwave at the end of the film Time Bandits 
AutoIt v3 features most of the common "loops" in use today and with these Goto is no longer required. Look up While, Do, For, ExitLoop, ContinueLoop and Functions for the modern way of doing things  And while you are looking at help file
sections check out these on loops, conditional statements and functions. I promise you, once you have got the hang of such things you will be able to script in virtually any other language within a couple of minutes
  当然在语言体系中使不使用Goto语句这只是一件见仁见智的小事,倒也无可厚非,重要的一点是:软件要拓展,而且是不断地更新拓展,
  任何瞻首顾尾的行为,不仅可能会导致行动上的犹疑迟缓,也可能因跟不上发展而导致错失良机。
引用一句"不要用AutoIT做按键精灵能做的事"。
 https://www.jb51.net/article/14871_all.htm

No comments: