AutoIt3和按键精灵的功能对比第2/2页

Auto函数集也可大致分做3部分:   (1)软件内置函数。这类函数约359个,其中GUI函数67个。   (2)UDF(用户定义)函数。AutoIt官方提供的

  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做按键精灵能做的事"
向thesnow.yoken...等致力于AutoIT的同志致谢!注意啦: 戴帽的脱帽子,坐着的站起-----------致敬

您可能有感兴趣的文章
Delphi中对时间操作方法汇总

Delphi编程常用快捷键大全

delphi 字符串处理中的怪异现象与处理方式

初探Delphi中的插件编程

delphi中一个值得大家来考虑的DLL问题