iT邦幫忙

0

請教各位神人大大
小弟想要用AUTOIT寫了一個自動安裝程式的腳本,但是到了這邊就卡住了
"WinWaitActive("InstallShield Wizard")
ControlClick("InstallShield Wizard", "", "Button4")

這段寫的是希望按下完成安裝的finish按鈕,
我的判斷是,由於安裝過程較長,導致最後這個InstallShield Wizard視窗尚未跳出他便執行了按下finish按鈕這段ControlClick("InstallShield Wizard", "", "Button4")

請問各位神人大大,如何寫這個CODE,像是如何增加他等待這個視窗的時間!!!或者有更好的寫法


Run("C:\FumeFX2.1-2011\FumeFX21R2011.exe")
WinWaitActive("InstallShield Wizard")
WinWaitActive("InstallShield Wizard")
Send("!n")
WinWaitActive("InstallShield Wizard")
Send("!a")
WinWaitActive("InstallShield Wizard")
Send("!n")
WinWaitActive("InstallShield Wizard")
Send("!n")
WinWaitActive("InstallShield Wizard")
Send("!n")
WinWaitActive("InstallShield Wizard")
Send("!n")
WinWaitActive("InstallShield Wizard")
ControlClick("InstallShield Wizard", "", "Button4")


另外像這些指令是需要怎麼使用,後面的數字作用為何

Opt("WinWaitDelay",100)

Opt("WinTitleMatchMode",4)

Opt("WinDetectHiddenText",1)

Opt("MouseCoordMode",0)

James iT邦大師 7 級 ‧ 2011-07-18 08:14:01 檢舉
WinWait("InstallShield Wizard","")
If WinExist("InstallShield Wizard","已安裝")
.
.
.
.
ElseIf WinExist("InstallShield Wizard","未安裝")
.
.
.
EndIF
感謝Bruck此問題已經解決了,目前又碰到另一個問題,不知如何將A輸入框產生的數次,輸入到B輸入框,我正在研究中..
^_<

1 個回答

6
James
iT邦大師 7 級 ‧ 2011-07-14 09:10:22
最佳解答

因為你每次都用 WinWaitActive("InstallShield Wizard") ,所以有可能送出按鍵後還是存在 "InstallShield Wizard" 視窗,AutoIT接著用繼續送出後面的按鍵。

WinWaitActive("視窗標題","視窗內容文字"),要把適當的"視窗內容文字"加入程式碼中。
所謂適當就是儘可能挑選唯一的不會重覆出現的文字。

看更多先前的回應...收起先前的回應...

如果等待下個視窗與上個視窗有差異性是最好的,那如果要設定程等待下個視窗的button4須如何寫這段code,或者說換成讓某個動作等待個幾秒在執行下個動作需如何寫?,小弟才疏學淺,可否詳細告知code寫法...

小成 iT邦高手 10 級 ‧ 2011-07-14 10:57:05 檢舉

等待可以用SLEEP()

小成 iT邦高手 10 級 ‧ 2011-07-14 10:58:21 檢舉
小成 iT邦高手 10 級 ‧ 2011-07-14 11:00:05 檢舉

感謝各位大大的相助,目前已可正常安裝完成,但是又碰到另一種狀況,如果碰到已安裝過FumeFX21R2011.exe
會跳出另一種視窗詢問我需要Modify or repair or remove, 我已寫好 碰到已安裝 & 未安裝的code 請問我該使用哪種語法讓他判斷,該執行已安裝或未安裝的code呢?
____________________________________________
已安裝FumeFX21R2011.exe
Run("C:\FumeFX2.1-2011\FumeFX21R2011.exe")
WinWaitActive("InstallShield Wizard","")
Sleep(1000)
ControlClick("InstallShield Wizard", "", "Button6")
WinWaitActive("Exit Setup","")
Send("!y")
_____________________________________________
未安裝FumeFX21R2011.exe
Run("C:\FumeFX2.1-2011\FumeFX21R2011.exe")
Sleep(1000)
WinWaitActive("InstallShield Wizard","")
Send("!n")
WinWaitActive("InstallShield Wizard","")
Send("!a")
WinWaitActive("InstallShield Wizard","")
Send("!n")
WinWaitActive("InstallShield Wizard","")
Send("!n")
WinWaitActive("InstallShield Wizard","")
Send("!n")
WinWaitActive("InstallShield Wizard","")
Send("!n")
Sleep(5000)
WinWaitActive("InstallShield Wizard","")
ControlClick("InstallShield Wizard", "", "Button4")

我要發表回答

立即登入回答