教程-軟件自動(dòng)安裝腳本編寫總結(jié)_第1頁(yè)
教程-軟件自動(dòng)安裝腳本編寫總結(jié)_第2頁(yè)
教程-軟件自動(dòng)安裝腳本編寫總結(jié)_第3頁(yè)
教程-軟件自動(dòng)安裝腳本編寫總結(jié)_第4頁(yè)
教程-軟件自動(dòng)安裝腳本編寫總結(jié)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

這編文章主要是總結(jié)自己在編寫200906軟件自動(dòng)安裝包中腳本的經(jīng)驗(yàn),以便與提高自己編寫腳本的能力。其實(shí)自動(dòng)腳本的編寫很簡(jiǎn)單,我只用了一個(gè)星期的時(shí)間學(xué)習(xí),就能夠自己編寫腳本了,但是要寫好就不容易,主要是要反復(fù)測(cè)試。

200906軟件自動(dòng)安裝包中的軟件安裝器是論壇的softwareinstaller2.0版本(見圖1)。

這是個(gè)軟件安裝器可以自由選擇安裝路徑是非常好的一個(gè)軟件,下面我把自己在編寫腳本時(shí)的有關(guān)情況進(jìn)行一下總結(jié)

以軟件包中迅雷v62為例,腳本開頭的代碼如下:

Local$InstallPath

If$Cmdline[0]<>0Then

$InstallPath=$Cmdline[1]

EndIf

這段代碼具體的意思,我也不是很清楚,但是你要想用softwareinstaller2.0這個(gè)安裝器,就必須以這段代碼開頭。

Run(@ScriptDir&"\Thunder.exe")

這段代碼的意思是運(yùn)行當(dāng)前腳本所在的目錄中的Thunder.exe軟件,其中,RUN是運(yùn)行命令,@ScriptDir是當(dāng)前運(yùn)行中的腳本所在的目錄(不包括結(jié)尾的反斜杠符號(hào))。&是使兩個(gè)字符串連接起來(lái),后面的代碼則是你要安裝的軟件的文件名。這個(gè)代碼運(yùn)行后會(huì)出行如下界面(見圖2)

本帖隱藏的內(nèi)容WinWait("安裝-迅雷5","歡迎使用迅雷5安裝向?qū)?)WinActivate("安裝-迅雷5","歡迎使用迅雷5安裝向?qū)?)

WinWaitActive("安裝-迅雷5","歡迎使用迅雷5安裝向?qū)?)

Send("!N")

WinWait命令是暫停腳本的執(zhí)行直至指定窗口存在(出現(xiàn))為止。WinActivate命令是激活指定的窗口。WinWaitActive命令是暫停腳本的執(zhí)行直至指定窗口被激活(成為可活動(dòng)狀態(tài))為止。這段代碼有的人會(huì)說(shuō)只用WinWait和WinWaitActive就可以了,為什么我要在這里加一個(gè)WinActivate命令,主要是考慮我們平時(shí)裝軟件時(shí),不可能只裝一個(gè),如果我們裝的軟件較多,加上電腦配置不高的話,可能會(huì)導(dǎo)致安裝第二個(gè)軟件時(shí),軟件安裝界面不在激活狀態(tài)(這種情況我遇到過),因此,為了安裝順利我認(rèn)為在這個(gè)地方加上WinActivate命令還是有必要的。

Send命令是模擬鍵盤動(dòng)作,意思是按ALT+N,其它的鍵盤按鍵,大家可以看AU3幫助中Send命令的參數(shù)。除了模擬鍵盤外AU3還提供了模擬鼠標(biāo)動(dòng)作,大家可以用ControlClick命令,具體用法可以看小穆的教程(他主要以模擬鼠標(biāo)動(dòng)作為主)。/bbs/viewthread.php?tid=18186&fromuid=9516

,上面的代碼執(zhí)行后(見圖3)WinWait("安裝-迅雷5","許可協(xié)議")

WinWaitActive("安裝-迅雷5","許可協(xié)議")

Send("!A")

send("!N")這段代碼是指捕抓到窗口后,先按ALT+A鍵,后ALT+N鍵。執(zhí)行后(見圖4)WinWait("安裝-迅雷5","選擇附加任務(wù)")

WinWaitActive("安裝-迅雷5","選擇附加任務(wù)")

Send("{Space}")

Send("!N")

這段代碼和上面是一樣的意思,注意在選項(xiàng)選擇時(shí),我們可以用Send("{TAB}")和Send("{DOWN}")命令進(jìn)行選項(xiàng)的選擇,用Send("{Space}")啟用和關(guān)閉選項(xiàng)。有時(shí)有些軟件不能用鍵盤動(dòng)作進(jìn)行選擇時(shí),可以用鼠標(biāo)動(dòng)作ControlClick命令進(jìn)行。如QQ2009軟件(見圖5)

這種情況的代碼可以這樣編寫:

WinWait("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)")

WinWaitActive("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)","Button9")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)","Button8")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)","Button10")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)","Button11")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇自定義安裝選項(xiàng)與快捷方式選項(xiàng)","Button7")

send("!N")

再回到迅雷安裝步驟,見圖6:

WinWait("安裝-迅雷5","百度超級(jí)搜霸

輕松搜索,攔截廣告!")

WinWaitActive("安裝-迅雷5","百度超級(jí)搜霸

輕松搜索,攔截廣告!")

Send("{Space}")

Send("!N")

捕抓到窗口后,取消“百度超級(jí)搜霸”的安裝,并按“下一步”,執(zhí)行后(見圖7):

WinWait("安裝-迅雷5","選擇目標(biāo)位置")

WinWaitActive("安裝-迅雷5","選擇目標(biāo)位置")

If$InstallPath<>""Then

Send("{del33}")

Send($InstallPath&"\"&"Thunder\")

EndIf

send("!N")

這段代碼說(shuō)實(shí)話具體什么意思我也不是很明白,我只能一行一行的說(shuō),前兩行大家都知道了我就不說(shuō)了。

If$InstallPath<>""Then,這個(gè)是一個(gè)判斷語(yǔ)句,其中$InstallPath是軟件安裝器softwareinstaller的選擇路徑變量,如果你在軟件安裝器中沒有選擇路徑的話,就會(huì)執(zhí)行EndIf后的代碼,也就是直接按“下一步”。如果你進(jìn)行了路徑選擇,就會(huì)執(zhí)行其后的代碼。

Send("{del33}")這個(gè)是:連續(xù)按“刪除”鍵33次,其目的是刪除軟件安裝路徑框中的默認(rèn)路徑。

Send($InstallPath&"\"&"Thunder\")這個(gè)是:在軟件安裝路徑框中輸入路徑。例:如果你在軟件安裝器中選擇軟件的安裝路徑為d:盤的話,這段代碼意思就是在軟件安裝路徑框中輸入“d:\Thunder\”。有些軟件在安裝時(shí),安裝路徑框不是選中狀態(tài),這個(gè)時(shí)候就要改一改上述的代碼了,如200906軟件自動(dòng)安裝包中的QQ軟件,見圖8:遇到這種情況就要先用ControlClick命令選中軟件路徑輸入框,然后用再用“退格”鍵,刪除輸入框中的默認(rèn)路徑。具體代碼如下:

WinWait("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇安裝路徑")

WinWaitActive("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇安裝路徑")

ControlClick("騰訊QQ2009安裝向?qū)?,"請(qǐng)選擇安裝路徑","Edit1")

If$InstallPath<>""Then

Send("{BACKSPACE33}")

Send($InstallPath&"\"&"Tencent\QQ\")

EndIf

send("!i")

再回到迅雷安裝步驟。

路徑選擇完后,執(zhí)行下一步,會(huì)出現(xiàn)兩種情況。

第一種情況,進(jìn)入下一個(gè)步驟,見圖9

這種情況的代碼如下:

WinWait("安裝-迅雷5","準(zhǔn)備安裝")

WinWaitActive("安裝-迅雷5","準(zhǔn)備安裝")

Send("!I")

第二種情況,會(huì)出現(xiàn)文件夾存在,見圖10

這種情況代碼如下:

ifWinActive("文件夾存在")=1Then

Send("{enter}")

EndIf

意思是檢查“文件夾存在”窗口是否存在,如果存在就按“回車”鍵,如果不存在就執(zhí)行EndIf后面的代碼。這個(gè)代碼執(zhí)行完后就會(huì)回到第一種情況。當(dāng)?shù)谝环N情況的代碼執(zhí)行完后就會(huì)出現(xiàn)下面的界面(見圖11)。

這個(gè)是軟件正在安裝的界面,我們不管理它,當(dāng)安裝完成后,我們會(huì)看到下面的界面(圖12):

當(dāng)迅雷安裝到最后一個(gè)界面時(shí),IE瀏覽器彈出,并使安裝界面不在激活狀態(tài),我要用下面的代碼解決:

WinWait("安裝-迅雷5","迅雷5安裝向?qū)瓿?)

WinActivate("安裝-迅雷5","迅雷5安裝向?qū)瓿?)

While1

Select

CaseProcessExists("IEXPLORE.EXE")

ProcessClose("IEXPLORE.EXE")

ExitLoop

CaseProcessExists("Maxthon.exe")

ProcessClose("Maxthon.exe")

ExitLoop

EndSelect

Wend

其中WinActivate命令是激活指定的窗口,While1….Wend是一個(gè)循環(huán)命令,Select…Case…EndSelect是一個(gè)多選擇命令,ProcessExists命令是檢查指定進(jìn)程是否存在,ProcessClose命令是結(jié)束指定進(jìn)程。ExitLoop命令是跳出循環(huán)。整個(gè)代碼的意思是,不停的檢查是否有IE和傲游瀏覽器進(jìn)程,有的話就結(jié)束相應(yīng)的進(jìn)程并跳出循環(huán)。大家要注意了,如果沒有IE和傲游瀏覽器進(jìn)程的話,這個(gè)循環(huán)就是一個(gè)死循環(huán),永遠(yuǎn)會(huì)循環(huán)下去,因此,大家一定要惕用。大家可以根據(jù)這個(gè)代碼中的多選擇命令的特點(diǎn),把檢查和結(jié)束其它瀏覽器的進(jìn)程的代碼添加進(jìn)行。這段代碼執(zhí)行后見圖13:

WinWait("安裝-迅雷5","迅雷5安裝向?qū)瓿?)

WinWaitActive("安裝-迅雷5","迅雷5安裝向?qū)瓿?)

Send("{DOWN}")

Send("{Space}")

Send("{DOWN}")

Send("{Space}")

Send("!F")

EXIT

這段代碼的意思是,取消“將迅雷看看設(shè)為IE首頁(yè)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論