Dec 19 Sun 2010 22:09 [A] AutoIt!! include 引入其它 au3 分享: 1. 善用內建函式庫 事實上 AutoIt 已提供了非常多的現有函式庫,要去調用時,必須知道那些現有函式是存在於哪些函式庫裡。而這些現有函式庫,在安裝時都已安裝於 C:\Program Files\AutoIt3\Include (筆者電腦之作業系統為 XP,AutoIt 版本為 3.3) 。而要調用這些現有的函式庫,可加上這麼一段敘述 #include <函式庫名> 以 Array.au3 為例,若要調用 C:\Program Files\AutoIt3\Include 裡面內附的 Array.au3,則這麼使用 #include 其它的就是看說明書去使用 Array 這個物件(相當於 MFC 的 list-view)。這裡只簡單的加入一些項目後,將它顯示出來。測試用的原始碼如下 #include Local $Number[10] _ArrayDisplay($Number, "加入前") For $i=0 To 9 _ArrayAdd($Number, $i+1) Next _ArrayDisplay($Number, "加入後") 執行結果如下 對於執行結果與程式碼有興趣者,可先自行研究 Array.au3 之其它函式。 2. 自定義函式庫 之前我們有談到 自定義函式 的問題,一旦自己寫的函式多了起來,而且日後使用到的機會一多的話,這時便可考慮將這些自定義函式寫成一個函式庫的檔案,到時再接著引用。現在假設寫了一個 MyMath.au3,內容如下 ; FileName : MyMath.au3 ; ====================================== ; 1+2+...+N ; ====================================== Func Sum1N($N) Dim $i=0, $sum=0 For $i=1 To $N $sum = $sum + $i Next return $sum EndFunc ; ====================================== ; 1^2 + 2^2 + ... + N^2 ; ====================================== Func Sum1N2($N) Dim $i=0, $sum=0 For $i=1 To $N $sum = $sum + $i^2 Next return $sum EndFunc ; ====================================== ; Swap ; ====================================== Func Swap(ByRef $a, ByRef $b) $t = $a $a = $b $b = $t EndFunc 接著若在 Sample.au3 裡面調用這個 MyMath.au3 裡面的 Swap 函式,要注意的是,這裡的 Sample.au3 和 MyMath.au3 是放在同一目錄底下。寫法如下 ; FileName: Sample.au3 #include "MyMath.au3" Dim $a = 5, $b = 10 Swap($a, $b) MsgBox(0, "a value", "a=" & $a) MsgBox(0, "b value", "b=" & $b) 在此注意到,include 使用角括號 「#include <...> 」和使用雙引號 「#include "..."」有所不同。使用角括號是直接只到安裝 AutoIt 時的 include 目錄底下(筆者為 C:\Program Files\AutoIt3\Include)去搜尋該 .au3 檔案,調用其函式庫;然而使用雙引號是先去現在的目錄底下搜尋該 au3 檔案。當然也有人直接把自己常用到的函式寫好,檔案直接丟到安裝目錄底下,這樣就一律都用角括號,不過這不是聰明的做法,因為自己寫的可能會有隱藏性問題而不自知。 3. 重覆 include 問題 剛我寫了一個 MyMath.au3,假設我又寫了一個 MyMath2.au3,包含了 MyMath.au3,接著 Sample.au3 又包含了 MyMath.au3 與 MyMath2.au3,關係如下整理 MyMath2.au3 -> 包含 MyMath.au3 Sample.au3 -> 包含 MyMath.au3, MyMath2.au3 這時在執行時便會發出類似這種錯誤訊息:MyMath2.au3 被重覆 include ,原因是因為所有的函式庫一次只能被 include 一次。為避免這種情形發生,於是我們在 MyMath.au3 與 MyMath2.au3 前面一律加上這種東西 #include-once 這樣便可避免掉 MyMath.au3 與 MyMath2.au3 被重覆 include 之問題。 edisonx 發表在 痞客邦 PIXNET 迴響(0) 引用(0) 人氣(126) http://edisonx.pixnet.net/blog/post/38342789 回 · 發現好東西 autoit 這一篇文章封面 |
本站公告:〔您越需要我們,我們就越有創意〕 | 本站說明書:〔發現故鄉還有改進的地方,請來信告訴原丁們〕 |
觀察應用學習點數 :〔咱的故鄉有您的參與,會使我們有更大的發揮空間,展現更豐富精彩的學習畫面〕 | 〔期待藉由無障礙網頁設計,能讓視障小朋友更愛看書、更愛寫作且更愛學習〕:盲用電腦「心得分享」 |