哪些事情是 AutoIt 可以而 AutoHotkey 不行的?

AutoHotkey 和 AutoIt 的主要區別又在哪呢?


註:我想題主真正的問題是 AutoHotkey_L 和 AutoIt3 的區別是什麼?

這個問題沒有多少意義,能實現什麼更多取決於你的能力。它們自身的功能近乎雷同,調用第三方組件的能力是一脈相承的,目前的 AutoHotkey_L 和 AutoIt3 都源自 AutoIt2。如果計劃開始學習腳本,建議任選一種開始學習,即使之後轉換,代價極低。(它們的區別存在許多方面,簡單而言:AutoHotkey 在熱鍵、熱字串方面有所增強,而 AutoIt3 則函數庫更豐富。我個人認為對於腳本新手,兩者任選其一即可,因為你前期的學習讓你了解什麼是腳本,即使在後面轉向另一種也很容易上手的。了解它們的區別除了增加困惑外,沒有其他好處。)

對於學習腳本,對學習的方法我有幾個建議:

  • 如果目的是希望實現某種具體操作,則從寫這個腳本開始,邊看幫助邊修改邊學習,建議選取自己需要卻又簡單的操作開始;
  • 如果不是,則可從錄製器開始,先錄製操作代碼邊看邊學習,對於 AutoHotkey 我建議使用Pulover"s Macro Creator(成熟且功能強大的錄製器);
  • 如果不喜歡前兩者,則可從許多小例子開始學習,對於 AutoHotkey,小眾的懶人包里的腳本簡單並具有啟發意義,用於新手學習最好不過(用 AutoHotkey_L 執行時可能需稍做修改)。

因為題主關心 AutoHotkey 不行的操作,我舉兩個例子你就會明白了:

  • Sparrow: AHK WebServer w/ AHK in HTML support (sources incl) - AHK 實現的 Web 伺服器
  • A High End Gui Music Player Written in Autohotkey - AHK 實現的音樂播放器

這裡也轉幾張這個播放器的外觀供欣賞:

尺有所長寸有所短,對比其他語言 AutoHotkey 確實有它做不好的地方,但與 AutoIt 系出同門,就目前看來基本上只有語法風格的區別(以後也許 AutoHotkey 會強大些也難說)。

------------------------------------------------------------------------------------------------------

我這裡補充雪城朋友對於編輯器的回答:

SciTE4AutoHotkey 是專為 AutoHotkey 定製的,語法高亮、智能提示、調用幫助不必說,連調試功能都有。唯一的問題是沒有打包到 AutoHotkey 下載包中,換句話說,下載時除了 AutoHotkey,你還需要多點一次鏈接(在頁面下方):AutoHotkey Downloads

如果需要中文幫助,你還需要再點個鏈接(也在同一頁面中),唯此而已。

網上也有第三方集大成的打包版,這些工具都在裡面的。


可以在 nodejs 中使用,用 javascript 調用 autoit 函數

https://www.npmjs.com/package/autoit

(利益相關:這個模塊是我寫的)


autohotkey 和 autoit ,往往他們的用戶都會試用另外一款,並最終確定使用其中一個。

autohotkey :

優點:熱鍵支持更方便,語法更簡單一點。有動作錄製器(L 版沒有,可用舊版,或下載第三方)。

缺點:需要另外下載編輯器,不然沒有語法提示和高亮,對初學者不方便。

AutoIt :

優點:UDF函數多,很多你遇到的問題都有答案,較 AHK 容易寫出功能更複雜,更強大的程序。

缺點:不如 AHK 簡單。

兩款都是非常優秀的軟體,AHK 我更喜歡用來解決一些臨時的小問題。AU3 我會用於一些稍微複雜一點的任務。更複雜的.... 還是用更專業的編程工具吧。


類似於Perl和Python, 我更看好AutoIT和Python這種規則明確的語言.

AutoIT更重:

語法規則嚴格; 函數庫多到驚喜;

只是沒有下斷點的按鈕;

幫助文檔都是獨立的小文件

autohotkey更輕:

莫名其妙的%和:=, 缺乏一致性;

經常空值一頓運算, 你算個毛線啊;

網路編程函數, 控制項函數等庫函數太少了;

Editor不錯;

幫助文檔都是片段.

比如, 沒看到ahk專門處理SysListViewTree32的函數(誰看見可以告訴我哦).

可以看下李笑來寫的 AU3入門, 很不錯

(摘抄一段: 為了避免歧義與誤解,我們最好稱「=」為賦值符號。很多人嫌麻煩,「固執」地把「=」稱為「等號」,而將來因此造成無數的麻煩以及相當不堪的後果……最可憐的是,當麻煩降臨,後果不堪設想之時,他們全然不知根源竟然在這麼個不起眼的地方。.....以後你會知道,任何一種編程語言,真正強大的地方都在於它們各自的「函數庫」(Library)…… )

autoit可以吸引到李笑來, ahk不能, 嘿嘿.


直接針對題主的大標題,autoit可以把腳本編譯成exe文件單獨運行,而exe文件可以輕鬆被其他語言調用。換句話說,你用其它語言搞不定的時候,或許可以用autoit弄個exe,然後集成在一起運行


autoit常被數字等國軟誤殺,ahk也是這樣嗎?


推薦閱讀:

簡體字比繁體字書寫更方便,為什麼台灣人不改用簡體字?
工程師Coding的時候聽什麼音樂?
為了節約時間你都有過哪些奇妙的創意?
既然任何器械都不能省功,那麼為什麼步行比騎車要累?
這個世上有什麼一勞永逸的事?

TAG:程序員 | 編程 | 效率 | AutoHotkey | AutoIt |