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