Contents ...
udn網路城邦
淺談軟體自動安裝程式(AutoIT)篇之二
2011/12/26 19:45
瀏覽4,677
迴響0
推薦2
引用0
上一篇曾經提到AutoIT可以在執行時顯示一些提示視窗,引導使用者完成整個安裝動作,因此這一篇我們就來談談怎麼應用提示視窗及AutoIT本身的說明文件該怎麼查閱。

AutoIT可以運用的提示視窗,最常用的就屬Msgbox(另有ToolTip、TrayTip )。如果想知道這個指令的詳細用法與參數,可以雙點指令,等指令呈現選取的狀態後,按下F1就會開啟說明文件,這個功能很方便,請大家多多利用。(如果按F1沒反應,請先儲存檔案)

本文以最常用的Msgbox來做介紹,說明文件顯示的語法與參數如下
MsgBox ( flag, "title", "text" [, timeout [, hwnd]] )

Flag 設定視窗顯示的圖示與按鈕文字。(詳細資訊請參考說明文件)
Title 設定視窗的標題列文字。
Text 設定視窗內文文字。
Timeout 設定顯示時間。
Hwnd 視窗的控制碼。(這個我很少用)

一般而言,只要輸入前三項參數就可以成功使用Msgbox,Timeout跟Hwnd則是看使用需求而定。另外,如果參數不想顯示文字,那麼在雙引號內留空就行了。

以下是一個簡單的範例,視窗出現10秒後會自動消失。
MsgBox(0, "自動安裝程式", "軟體安裝完成,十秒後視窗自動消失", 10)

OK!到目前為止,大家應該都知道怎麼使用Msgbox了。

接著我們來談一下回傳值(Return Value),這個大家一定要會運用,因為如果你希望使用者按下「確定」才執行程式,或按「否」取消程式,那麼就必須使用回傳值配合if…then等條件語句來完成。

由說明文件內可以看到Msgbox的回傳值如下所示:
Success: Returns the ID of the button pressed.
Failure: Returns -1 if the message box timed out.

那該怎麼應用呢?

首先我們把Msgbox加上if…then的判斷語句:
If MsgBox(1,"", "Show Hello World?") = 1 Then
MsgBox(0,"","Hello World")
EndIf

註1:if…then…條件語句結束時要加上EndIf,請大家記起來。
註2:Flag由0改成1,才會有「確定」、「取消」兩個按鈕。

Success的回傳值通常都是1,但是Msgbox的回傳值與Flag的按鈕設定有相互對應的關係,例如「確定」的回傳值是1,「取消」的回傳值是2;所以請務必參考說明文件,以免程式執行時沒有反應。

回到上面的程式,我們在括弧後加上=1,意思就是指,當按下「確定」傳回1的值時,往下執行Hello World的Msgbox;反之,按下「取消」的時候,因為沒有設定動作,所以程式會結束。

Failure這邊是指當時間Timeout後回傳-1的值,因此當我們遇到使用者不在,沒人選取「確定」或「取消」的情形時,我們可以設定Timeout的時間,因此程式改成:

If MsgBox(1,"", "Show Hello World?",5) = -1 Then ;回傳值為-1則往下執行
MsgBox(0,"","Hello World")
EndIf

註1:使用-1這個回傳值,一定要加上Timeout的時間,否則不會有作用。
註2:分號後面的文字為註解。
註3:撰寫程式時請多加上註解,以後修改的時候可以省下很多時間。

以上便是關於Msgbox的使用方式,希望對大家有幫助。
有誰推薦more
發表迴響

會員登入