AutoIt3和按鍵精靈的功能對(duì)比第2/2頁(yè)
更新時(shí)間:2008年06月19日 09:17:31 作者:
AutoIt3和按鍵精靈的比較
無其他的意思,剛看到,順手轉(zhuǎn)了過來,給想學(xué)AUtoIT的同志看看,以下是國(guó)內(nèi)(AutoIT )二位高手的評(píng)價(jià)(本論壇高手也多,只是一直默默無聞,象幾位版主
Auto函數(shù)集也可大致分做3部分:
?。?)軟件內(nèi)置函數(shù)。這類函數(shù)約359個(gè),其中GUI函數(shù)67個(gè)。
?。?)UDF(用戶定義)函數(shù)。AutoIt官方提供的函數(shù)集中有相當(dāng)大比例是用戶定義函數(shù),總計(jì)約425個(gè)函數(shù)。這個(gè)統(tǒng)計(jì)數(shù)字并不包含官方網(wǎng)站上提供的可自由下載的其他用戶定義函數(shù)。此類函數(shù)大多是AutoIt的使用和愛好者根據(jù)自身的需要和興趣,自行編寫對(duì)官方函數(shù)集的拓展,應(yīng)用方向上各方面都有。
(3)插件。這一部分?jǐn)?shù)量很少,可以忽略不計(jì)。
4. 對(duì)于游戲腳本的支持度
“按鍵精靈”專門針對(duì)游戲腳本編寫提供了很有特色的函數(shù),如:FindCenterColor(在屏幕的某個(gè)區(qū)域從中心開始查找指定的顏色)、FindColorEx(模糊查找顏色)、FindPic(查找圖片),以及發(fā)送模擬硬件鼠標(biāo)/鍵盤信息的函數(shù)等等。
此外,“按鍵精靈”專門提供了“神盾”這一比較特殊的功能,在某些情形下很有用。
AutoIt官方在這一方面提供的函數(shù)比較有限,只簡(jiǎn)單地提供了Send、PixelChecksum、PixelSearch幾個(gè)有限的函數(shù)支持。(個(gè)人觀點(diǎn):出發(fā)點(diǎn)不一樣,一個(gè)是游戲,一個(gè)是辦公,前面已經(jīng)說過)
5. 腳本GUI界面支持
“按鍵精靈”軟件可以將腳本打包生成的“小精靈”,官方提供了一個(gè)相對(duì)比較簡(jiǎn)單的GUI界面,此外,也有愛好者用其他高級(jí)語(yǔ)言如Basic/Delphi,甚至是Html語(yǔ)言生成界面供“按鍵精靈”腳本調(diào)用,但這類方法相對(duì)要求比較高。
AutoIt官方內(nèi)置GUI函數(shù)約67個(gè),用戶定義函數(shù)約220個(gè),可謂數(shù)量眾多。通過這些GUI函數(shù),可以生成包含Windows各種標(biāo)準(zhǔn)控件的用戶界面,有好事者甚至提供了XSkin函數(shù)包用于建立類似皮膚的效果。
6. 編譯獨(dú)立腳本支持
“按鍵精靈”和AutoIt都提供將腳本編譯打包成可執(zhí)行文件的功能,相比較而言,AutoIt編譯后生成的可執(zhí)行文件更小、更有效率,這一點(diǎn)并不單純指AutoIt生成的文件小,而是“按鍵精靈”編譯的文件需要支持環(huán)境,就是說,雖然生成“按鍵精靈”編譯的文件(小精靈)是一個(gè)文件,但當(dāng)你運(yùn)行這個(gè)編譯腳本之后,會(huì)自動(dòng)在文件所在目錄下生成其他的文件。舉例說明:編寫彈出一個(gè)對(duì)話框顯示“世界,你好!”這個(gè)程序,AutoIt編譯后生成的文件為 201KB,“按鍵精靈”的為752KB,當(dāng)運(yùn)行“按鍵精靈”后,自動(dòng)生成文件共14個(gè),累計(jì)大小為2.28MB。
順便提一句,AutoIt使用UPX軟件進(jìn)行壓縮,可能會(huì)導(dǎo)致被某些殺毒軟件報(bào)警(卡8和瑞星貌似是最常見的)。
7. 腳本的調(diào)試偵錯(cuò)
“按鍵精靈”的腳本在調(diào)試與錯(cuò)誤代碼定位上做的不夠盡如人意,如果腳本出現(xiàn)錯(cuò)誤,你很難找到同錯(cuò)誤的原因,有時(shí)腳本運(yùn)行出錯(cuò),但你卻得不到任何有幫助的提示信息,甚至只好逐行查找代碼。
AutoIt在這方面與大多數(shù)高級(jí)語(yǔ)言如Delphi的IDE類似,可以提供語(yǔ)法檢查等,并提示錯(cuò)誤類型、出錯(cuò)代碼所在的位置(行、列)等信息,這些信息對(duì)于快速定位與修正腳本錯(cuò)誤提供了很大幫助,大大提高了腳本編寫效率。
8. 軟件的更新與升級(jí)
任何軟件都存在一個(gè)不斷改進(jìn)和完善的過程,正常情況下一個(gè)軟件更新得越頻繁,說明這個(gè)軟件越有活力(頻繁地DeBug和Patch除外)。
“按鍵精靈”V6.0之前的版本,對(duì)于結(jié)構(gòu)化編程(或者說用戶定義函數(shù))的支持并不好,不能良好地支持帶參數(shù)、帶返回值的函數(shù)定義,也沒有區(qū)分變量的作用范圍,這種情況在早期腳本應(yīng)用比較簡(jiǎn)單時(shí)并沒有什么大影響,然而當(dāng)隨著腳本功能越完善、代碼量變大之后,這個(gè)就變得比較令人頭痛了。
雖然“按鍵精靈”自V6.0版本之后,對(duì)此情況提供了內(nèi)嵌的VBScript代碼塊支持,但總體感覺起來還是不太方便。由于考慮到與舊版本的兼容性問題,“按鍵精靈”在腳本語(yǔ)言中仍舊保留了goto這一為編程所垢病的語(yǔ)句,可能也因此導(dǎo)致不得不采用現(xiàn)在的VBScripBeing...End的方式解決軟件的語(yǔ)言功能擴(kuò)展問題,但個(gè)人感覺有點(diǎn)不倫不類。
相比較之下,AutoIt在版本的升級(jí)中(從v2.64版到V3.0版)也遇到有類似的情況,但AutoIt采取了另一種解決辦法,那就是斷然從腳本的語(yǔ)言體系中去掉Goto語(yǔ)句,對(duì)此,官方幫助文件的里有段話對(duì)此事作了如下說明:
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
當(dāng)然在語(yǔ)言體系中使不使用Goto語(yǔ)句這只是一件見仁見智的小事,倒也無可厚非,重要的一點(diǎn)是:軟件要拓展,而且是不斷地更新拓展,
任何瞻首顧尾的行為,不僅可能會(huì)導(dǎo)致行動(dòng)上的猶疑遲緩,也可能因跟不上發(fā)展而導(dǎo)致錯(cuò)失良機(jī)。
引用一句"不要用AutoIT做按鍵精靈能做的事"
向thesnow.yoken...等致力于AutoIT的同志致謝!注意啦: 戴帽的脫帽子,坐著的站起-----------致敬
相關(guān)文章
用autoit編寫第一個(gè)腳本(Hello World)
此頁(yè)將介紹創(chuàng)建并運(yùn)行AutoIt腳本的一些基本方法。我們假定您已經(jīng)使用我們提供的安裝程序安裝好了AutoIt v3。2008-06-06