分享

自動安裝程式 - 試試AutoIt

最近在研究Unattended XP,也就是現在常聽到的"無人值守"XP安裝光碟啦!
在XP的瘦身方面,nLite是一套很方便的工具
但是其他各種不同的程式想要在開機自動安裝可就不是一件簡單的事
AutoIt正是一個方常好的解決方案!
不過這不是自動化的方案,最好要有點程式基礎比較好學。
由於各種不同的程式使用的安裝套件都不同,要自動安裝下的參數也不盡相同,有時候一些選項又不想選(例如安裝realone卻又不想讓它成為預設播放程式) 
 這時候AutoIt就可以派上用場 
AutoIt可以讓你使用簡單的程式語言,來控制Windows的各種介面以及模擬鍵盤滑鼠行為的語言,並且可以直接與各種Windows控制項互動,所以說幾乎各種動作都能夠做到了,它也附了一個方便的小程式"AutoIt Window Info"可以顯示每個視窗的資訊以及控制項。 
以下的例子是安裝個人愛用的音樂播放器:foobar2000 v0.9.6.9 Setup版,並將Monkey Audio的外掛檔foo_input_monkey.dll複製到foobar2000安裝目錄的components目錄中:
;執行foobar2000安裝檔
 Run("foobar2000_0.9.6.9.exe")
; 等待foobar2000 v0.9.6.9 Setup的安裝視窗出現
 WinWaitActive("foobar2000 v0.9.6.9 Setup") 

; 按下一步,alt+n的寫法就是!n,以此類推
 Send("!n")
; 等待下一個foobar2000 v0.9.6.9 Setup的安裝視窗出現
 WinWaitActive("foobar2000 v0.9.6.9 Setup") 

; 按"I Agree",也就是alt+a
 Send("!a")
; 等待下一個foobar2000 v0.9.6.9 Setup的安裝視窗出現
 WinWaitActive("foobar2000 v0.9.6.9 Setup") 

;預設選擇Standard installation,按下一步
 Send("!n")
; 等待下一個foobar2000 v0.9.6.9 Setup的安裝視窗出現
 WinWaitActive("foobar2000 v0.9.6.9 Setup") 

;如果要改變安裝目錄,使用AutoIt Window Info工具取得控制項名稱為Edit1,
;並使用ControlSetText設定新的路徑值,然後用ControlGetText將路徑記錄下來,
;後面會用到
;用法:ControlSetText ( "視窗標題", "視窗內的文字", "控制項ID", "設定的文字" )
;(function的參數設定可參考線上文件,以下省略)
ControlSetText("foobar2000 v0.9.6.9 Setup", "", "Edit1", "D:\foobar2000" )
$path = ControlGetText("foobar2000 v0.9.6.9 Setup","","Edit1")
; 按下一步
Send("!n")
; 等待下一個foobar2000 v0.9.6.9 Setup的安裝視窗出現
WinWaitActive("foobar2000 v0.9.6.9 Setup") 

; 如果要選擇不同安裝方式,使用AutoIt Window Info工具取得下拉式選單控制項ComboBox1,
;將ComboBox1控制項的下拉式選單拉下
 ControlCommand("foobar2000 v0.9.6.9 Setup","","ComboBox1","ShowDropDown","")
; 看你要選擇哪種安裝方式,這裡是選Full,也就是完整安裝
 ControlCommand("foobar2000 v0.9.6.9 Setup","","ComboBox1","SelectString",'Full')
; 按下一步
 Send("!n")
; 等待下一個foobar2000 v0.9.6.9 Setup的安裝視窗出現
 WinWaitActive("foobar2000 v0.9.6.9 Setup") 

; 按開始安裝,也就是alt+i
 Send("!i")
; 這裡比較麻煩的是要跳過安裝進度視窗,等待安裝完成的視窗出現,
;因為視窗名稱都一樣,所以加入第二個參數,表示安裝完成視窗上會出現的文字
 WinWaitActive("foobar2000 v0.9.6.9 Setup","Completing the foobar2000 Setup") 

; 單按滑鼠在Button4控制項,將"Run Foobar2000"的選項取消
 ControlClick("foobar2000 v0.9.6.9 Setup","","Button4")
; 按Finish完成安裝
 Send("!f")
; 將$path變數改為安裝components的路徑
 $path=$path & "\components"
; 將foo_input_monkey.dll複製到components目錄中,1是強制覆蓋的意思
FileCopy("foo_input_monkey.dll",$path,1) 
然後將這個script檔存成au3檔便可以執行看看,
沒問題之後可以用Autoit的Compile Script to .exe工具編譯成.exe執行檔,以後不需要安裝AutoIt就可以執行。 
以上只用到AutoIt強大功能的皮毛而已,現在已經出到v3版,還可以自己製作GUI,甚至可以直接call DLL的function,有興趣可以看內附的help檔有詳細說明,或是參考線上文件。            
分類:學習

Life's andante

評論
上一篇
  • 近況 & SE Arc S 隨拍
  • 下一篇
  • = 谷根千.散步寫真 = [Pentax MX]卷6,卷7
  • 更多文章
    載入中... 沒有更多了