Contents ...
udn網路城邦
淺談軟體自動安裝程式(AutoIT)篇之一
2011/05/11 00:10
瀏覽11,954
迴響0
推薦2
引用0
前言:
這篇文章是本部落格的第一百篇文,本來是想拿比較有紀念性的作品來放,不過眼看過了大半年還沒寫出半篇,索性就拿最近正在鑽研的東西來講一講好了。

本篇文章是以路子工作上實務的角度歸納而得,因此不會有太多的入門教學,有興趣的朋友可以自己去GOOGLE AutoIT,相信可以找到許多資料。(我自己也是剛入門,所以太困難的問題我也無法解答)

首先來談談AutoIT能做什麼。(以下是示範案例)

今天主管跟我說,業務部門反映辦公室目前的Acrobat Reader版本太舊,客戶寄來的PDF檔案開啟時會有錯誤訊息,一直提示要更新至最新版的Reader,業務經理要我們盡快解決。

路子估算了一下,辦公室有兩三百台的電腦需要更新,如果一台台去裝,至少要半個月以上,而且這當中還會耽擱到其他的工作。要是能讓安裝程式自動運行,那該有多好。

在這種情形下,我們就可以利用AutoIT來完成作業。

首先,把安裝步驟寫成一個腳本,再把腳本轉換成EXE檔,接著把這個EXE檔與Acrobat Reader的主程式還有語系包放在一起,最後用超連結的方式或告知同仁檔案路徑,讓同仁自行點擊,藉以開始自動安裝程序。

如此一來,就可以節省許多時間。而且將來如果Acrobat Reader要再升級,只要把腳本裡面的檔案名稱改掉就可以了。

寫到這邊,有個地方要先提一下,有時候我們要安裝軟體時,軟體本身就有提供一些安裝參數,比方說「/passive」不需使用者操作,但會有安裝進度,或是「/quiet」沒有任何提示訊息的寧靜安裝。

因此我們在進行軟體安裝之前,不妨先看看有沒有類似的參數可以運用。如果有,就可以省下大把編寫腳本的時間了。

怎麼看這些參數?

Windows左下角的「開始」點選後,會有一個「執行」,選取「執行」後,會出現一個窗口可以輸入指令。這時候只要把安裝程式拖曳至窗口處放開,就會出現安裝路徑,在路徑的最後面請加上「/help」或者是「/?」,接著按下「Enter」讓程式運行,就可以看到安裝參數了;如果軟體直接開始安裝,就表示沒有參數可用。

這裡路子以Acrobat Reader為例,我的AutoIT腳本這麼寫:
ShellExecuteWait("AcroRead.msi", "/passive /norestart");主程式
ShellExecuteWait("FontPack1000_ja_JP.msi", "/passive /norestart");日文語系包
ShellExecuteWait("FontPack1000_ko_KR.msi", "/passive /norestart");韓文語系包
ShellExecuteWait("FontPack1000_zh_CN.msi", "/passive /norestart");簡中語系包
ShellExecuteWait("FontPack1000_zh_TW.msi", "/passive /norestart");繁中語系包

其實Acrobat Reader的安裝可以透過DOS的BATCH來完成,既是如此,那路子為何要用AutoIT呢?

道理其實很簡單,因為AutoIT可以給出一些簡單的提示與互動視窗,或者是判斷式及迴圈的運行,這部分都是BATCH比較難做到的(其實是我DOS指令沒學那麼精,但有簡單的程式語言基礎)。

舉個例子,我希望在安裝程式開始前,給個訊息告知辦公室同仁,目前要進行什麼作業,同仁需要注意什麼,那麼我可以這麼表示:
MsgBox(0,"Auto Install Script","目前正更新Adobe Reader及語系包,請稍候片刻,並請勿使用滑鼠及鍵盤。",3)
這個對話方塊三秒鐘後會自動消失,緊接著開始進行軟體安裝,安裝完畢後,我再給個提示訊息:
MsgBox(0,"Auto Install Script","軟體已安裝完畢,請按確定結束,有任何問題請洽電腦室,謝謝!")

所以整個Acrobat Reader及語系包的安裝腳本是這樣子的:
MsgBox(0,"Auto Install Script","目前正更新Adobe Reader及語系包,請稍候片刻,並請勿使用滑鼠及鍵盤。",3)
ShellExecuteWait("AcroRead.msi","/passive /norestart")
ShellExecuteWait("FontPack1000_ja_JP.msi","/passive /norestart")
ShellExecuteWait("FontPack1000_ko_KR.msi","/passive /norestart")
ShellExecuteWait("FontPack1000_zh_CN.msi","/passive /norestart")
ShellExecuteWait("FontPack1000_zh_TW.msi","/passive /norestart")
MsgBox(0,"Auto Install Script","軟體已安裝完畢,請按確定結束,有任何問題請洽電腦室,謝謝!")

詳細語法路子就不介紹了,有興趣的人,安裝AutoIT後可以按F1看HELP,說明文件雖然都是英文,但內容並不難,而且有範例可以參考,稍微摸索一下就懂了。不然可以去找對岸同胞製作的漢化版,懂得利用GOOGLE,這些東西其實並不難取得。

到此先擱個筆,有機會再來談談其他的部分。
有誰推薦more
發表迴響

會員登入