欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

指南 - WinZip

此頁將介紹實(shí)現(xiàn) WinZip 9 SR-1漢化版 的自動安裝的方法。我們假定您已經(jīng)掌握了在 HelloWorld記事本(Notepad)指南中介紹的創(chuàng)建和運(yùn)行AutoIt腳本的方法,并且懂得使用 AutoIt 窗口信息工具 來讀取窗口標(biāo)題及文字等信息。

 

這個版本的 WinZip 的安裝程序總共有11個對話框是需要點(diǎn)擊按鈕(通常是 下一步(N))才能繼續(xù)進(jìn)行安裝的。我們將要寫的腳本很簡單,就是要等待這些對話框出現(xiàn)然后點(diǎn)擊適當(dāng)?shù)陌粹o即可。通常安裝這類程序會有很多窗口的標(biāo)題是一樣的(WinZip 安裝),因此我們必須使用窗口文字來判斷不同的窗口。下面提供了每個對話框的截圖,您可以點(diǎn)擊這些圖片來查看它們在 窗口信息工具 中顯示的相應(yīng)信息。

 

首先創(chuàng)建一個文件夾,復(fù)制WinZip的安裝程序(winzip90.exe)到此目錄,新建一個名為 winzipinstall.au3 的腳本文件置于同一個文件夾之下。

 

現(xiàn)在我們將一步一步來講解編寫腳本自動安裝程序的步驟。每個對話框的截圖下都會有進(jìn)行到該步驟的相應(yīng)腳本代碼(別忘了可以點(diǎn)擊這些圖片來查看它們在 窗口信息工具 中顯示的相應(yīng)信息)。此外您還可以查看我提供的 完整的腳本 以作參考。

 

第一行代碼非常簡單,我們要運(yùn)行名為 winzip90.exe 的這個安裝程序。因此此行腳本應(yīng)該是這樣的:

Run("winzip90.exe")


由于不是官方的英文原版,因此第一個顯示的對話框?qū)⑹菨h化作者的聲明(也就是廣告,^_^):



很明顯,要繼續(xù)裝WinZip的話就不能不按確定了。由上圖可知 確定 這個按鈕是默認(rèn)按鈕,因此我們先等待此信息框出現(xiàn)且處于激活狀態(tài)然后發(fā)送 回車 鍵擊動作即可。那么腳本代碼就是下面這樣了:

WinWaitActive("WinZip 9.0 SR-1 Build 6224 漢化版", "炎之川")
Send("{ENTER}")


按下確定后第二個對話框?qū)䦶棾觯?/p>

因此我們需要等待此窗口彈出且處于激活狀態(tài),接著要按第一個按鈕(Setup),留意到該按鈕名的S帶有下劃線,因此發(fā)送鍵擊 ALT-s 即可點(diǎn)擊它。那么腳本代碼就是下面這樣了:

WinWaitActive("WinZip Self-Extractor - instA.exe", "&Setup")
Send("!s")

(別忘了可以點(diǎn)擊這些圖片來查看它們在 窗口信息工具 中顯示的相應(yīng)信息)

如無 意外,接著就會出現(xiàn)安裝路徑選擇對話框:

我們需要等待該窗口變成活動窗口,然后如果您喜歡的話就可以按下回車表示接收此默認(rèn)安裝路徑。那么腳本代碼就應(yīng)該是下面這樣了:

WinWaitActive("WinZip 安裝程序", "到下列文件夾")
Send("{ENTER}")

但為了作更全面的示范,考慮到會有一些用戶不喜歡它默認(rèn)設(shè)置的安裝路徑,因此我們來做一個小小的修改,把路徑改為自定義的。以D:\Program Files\WinZip為例,當(dāng)然我們不需要也不應(yīng)該按那個 瀏覽(B)... 按鈕來定向到此目錄,這樣做實(shí)在是太麻煩而且不可靠,我們直接在它的編輯框中輸入指定路徑名即可;另外還要提醒一下,盡管程序?yàn)榱朔奖阌脩粢呀?jīng)令輸入框成為可輸入狀態(tài),也就是說可以通過發(fā)送鍵擊動作直接輸入路徑名,但為了增強(qiáng)腳本的可靠性,我們還是使用窗口信息工具來獲取該編輯框的名稱(點(diǎn)擊上面的圖片即可查看),結(jié)果為Edit1,因此修改上面的腳本代碼,變成下面這樣:

WinWaitActive("WinZip 安裝程序", "到下列文件夾")
ControlSetText("WinZip 安裝程序", "到下列文件夾", "Edit1", "D:\Program Files\WinZip" )
Send("{ENTER}")

接下來會出現(xiàn)的就是WinZip的功能介紹對話框:

請注意,此對話框的標(biāo)題和前面的是完全一樣的,都是 WinZip 安裝 ——事實(shí)上幾乎接下來的所有窗口都是使用這個標(biāo)題!因此,為了準(zhǔn)確區(qū)分這些窗口,我們還需要再加上一個窗口文字,同時要盡可能使用那些相對具有唯一性的文字。因此我們可選用 WinZip 的功能包括 這些文字。當(dāng)窗口出現(xiàn)之后我們只要按下 ALT-n 鍵即可:

WinWaitActive("WinZip 安裝", "WinZip 的功能包括")
Send("!n")

 

接下來將會出現(xiàn)許可協(xié)議窗口:

等待該窗口出現(xiàn)然后按下 ALT-y 表示接收此協(xié)議:

WinWaitActive("許可協(xié)議")
Send("!y")

 

接下來將會是有著類似風(fēng)格的幾個對話框,因此不再作詳細(xì)的解釋,每張圖片下都會有進(jìn)行到該步驟時相應(yīng)的腳本代碼:

 

WinWaitActive("WinZip 安裝", "快速入門")
Send("!n")

 

WinWaitActive("WinZip 安裝", "在兩種界面中進(jìn)行切換")
Send("!c")
Send("!n")

 

WinWaitActive("WinZip 安裝", "典型設(shè)置(推薦)(&E)")
Send("!e")
Send("!n")

 

WinWaitActive("WinZip 安裝", "WinZip 需要與壓縮文件格式進(jìn)行關(guān)聯(lián)")
Send("!n")

 

這是安裝程序的最后一個對話框。請注意,完成 這個按鈕沒有定義熱鍵——不過幸運(yùn)的是它“正好”是該對話框的默認(rèn)按鈕,因此我們只需按下回車鍵即可選到它。如果不是這樣的話,我們可能需要使用TAB鍵在各個控件之間進(jìn)行切換,或者更好的方法是使用 ControlClick 函數(shù)。

WinWaitActive("WinZip 安裝", "安裝已完成")
Send("{ENTER}")

 

安裝完成后 WinZip 會自動啟動:

等待WinZip的主窗口出現(xiàn)然后使用 WinClose 函數(shù)關(guān)掉它即可。

WinWaitActive("WinZip", "打開壓縮文件")
WinClose("WinZip", "打開壓縮文件")

 

為了使腳本更加可靠,我們還需要盡可能考慮各種意外的發(fā)生,比如該軟件已經(jīng)被用戶安裝好了,那么當(dāng)在第二個對話框中按下 Setup 這個按鈕時將會出現(xiàn)意料之外的窗口:



很明顯,既然程序已經(jīng)被安裝好了,我們就不必再進(jìn)行后面的操作了,因此我們需要按下 取消 這個按鈕或關(guān)閉此窗口皆可:

If WinExists("WinZip Setup", "注冊副本已安裝") Then
WinClose("WinZip Setup", "注冊副本已安裝")
;EndIf ;還需要添加下面的腳本才能結(jié)束此表達(dá)式


我想您肯定注意到了,上面的代碼使用了If...Then表達(dá)式,同時還使用了 WinExists 函數(shù),這段腳本的具體意思是:如果指定窗口存在則關(guān)閉該窗口。

關(guān)閉該窗口后會出現(xiàn)提示窗口:



很簡單,關(guān)閉此窗口即可,安裝程序?qū)⒆詣油顺觥?br>

WinWaitActive("WinZip 安裝程序", "軟件沒有成功安裝")
WinClose("WinZip 安裝程序", "軟件沒有成功安裝")


不過事情還不是那么簡單,實(shí)際運(yùn)行此腳本時會發(fā)現(xiàn)一個問題:如果程序已經(jīng)安裝過,則當(dāng)然會出現(xiàn)上面的窗口,但是腳本卻沒有做我們希望它做的事情——關(guān)閉窗口。其實(shí)仔細(xì)研究就會知道,這個表達(dá)式只是進(jìn)行一次即時的檢測,由于時間過快,檢測完窗口才出現(xiàn),因此會造成腳本暫停,不能繼續(xù)處理這個意外中斷;蛟S您可能會想到不停地進(jìn)行檢測(也就是循環(huán))來解決問題,其實(shí)不用這樣做,使用 Adlib 函數(shù)即可解決,這個函數(shù)就是專門用來處理這些“意外”的(其實(shí)也相當(dāng)于是循環(huán),它默認(rèn)是每隔250毫秒就調(diào)用自定義函數(shù))。因此把上面的腳本修改為這樣:

AdlibEnable("end")
Func end()
 If WinExists("WinZip Setup", "注冊副本已安裝") Then
  WinClose("WinZip Setup", "注冊副本已安裝")
  WinWaitActive("WinZip 安裝程序", "軟件沒有成功安裝")
  WinClose("WinZip 安裝程序", "軟件沒有成功安裝")
  Exit
 EndIf
EndFunc
;AdlibDisable() ;在腳本的最后位置添加此行


現(xiàn)在您可以查看 完整腳本 ——請注意,我把每個對話框的步驟分開并添加了注釋部分,這樣比較容易讀懂而且方便將來進(jìn)行修改(下一版本的WinZip大概也是只有輕微改動而已)。

 

大功告成!現(xiàn)在運(yùn)行一下 winzipinstaller.au3 這個腳本吧,您會看到WinZip將在很短的時間之內(nèi)被安裝好!在此頁使用的技術(shù)也可用來實(shí)現(xiàn)大多數(shù)程序的自動化安裝。

 

下面給各位讀者一個小小的練習(xí)題吧,請嘗試再編寫一次這個腳本,但不要使用 Send 函數(shù)(它會向激活窗口發(fā)送鍵擊動作),試試用 ControlClick 函數(shù)吧,這會令腳本更加可靠。在此之前您或許應(yīng)該熟讀關(guān)于 控件(Controls) 的說明。