導言:首先祝大家過個快樂的中秋節,專欄文章斷更了一些時間,但關注者依然不斷增加,對此我心存感激。最近到網上接任務,用 AHK 完成,馬上感覺到了它的短板。優點之前說過了,簡單易學,這點我想批處理都沒到這程度,同時熱鍵、熱字串簡潔方便又功能強大,很多語言都能做到強大的功能,不過說到簡潔方便尚未發現有其他語言能超越。

但缺點同樣明顯,沒有官方或第三方的完善標準庫,入門後要進一步提升很困難(也因為水平有限),實現較複雜的需求時要麼直接 Windows API 要麼只能找別人封裝好的函式(命令列或 COM 這樣的東西有的才有,大多數都沒有)。我遇到不少使用者從 AHK 入門後一些需求較高的使用者則轉向其他語言。

本專欄中的內容大致可分為兩類:

引導新使用者入門;

緩解較高需求使用者遇到的這種困境,標準庫缺失的問題解決方法有下面這些:

構建標準庫:在可預見的將來官方尚不可能,而第三方也沒有相應跡象;

直接呼叫 Windows API:我曾在論壇上發過的《Windows API 第一階》可作為簡要入門,但對於大多數使用者仍非常困難;

呼叫含標準庫的其他語言:我曾試驗呼叫 AutoIt3 的標準庫(相應文章發在論壇)。雖然成功但有兩個突出問題:一是其目標庫函式的依賴問題不易解決;二是透過 AutoIt3。exe 呼叫效率很低。(注:在 AutoHotkey_H 中,AutoHotkey。dll 在功能上與 AutoHotkey。exe 相當,但 AutoItX3。dll 的功能只是其對應可執行檔案的簡化版,希望透過這種方式執行 AU3 程式碼呼叫其標準庫函式在當時行不通。)

透過指令碼操作網頁是一種很常見的需求,網上的程式設計、指令碼任務中這類佔比較大。然而具體操作時實際情況比較複雜,所以這裡集合了網頁操作的一些教程,建議學習時自行分析原始碼或透過輔助工具實踐。

請參閱:網頁自動化初級教程