Instalarea automata a utilitarului 7-Zip

Pentru inceput aveti nevoie de utilitarul 7-Zip pe care il puteti descarca de aici. Apoi trebuie sa creati un script nou (in exemplul meu i-am dat numele AutoInstall 7zip.au3), de preferat in acelasi director cu executabilul 7-Zip. Daca ati procedat dupa instructiuni trebuie sa aveti un director asemanator cu cel de mai jos:

Apoi trebuie sa deschideti scriptul pentru editare. Prima linie din script este destinata rularii executabilului 7z920.exe si arata asa:

Run("7z920.exe",@ScriptDir,@SW_MINIMIZE)

Aceasta linie va executa 7z920.exe, stiind ca directorul de lucru este directorul in care este plasat scriptul, cu optiunea ca va fereastra va fi in modul minimize.

 

Apoi trebuie sa asteptam pana apare fereastra specifica procesului 7z920.exe. In acest caz fereastra se numeste “7-Zip 9.20 Setup “. Daca va intrebati cum am obtinut acest titlu pentru fereastra, raspunsul este folosind utilitarul AutoIt Window Info, pe care il gasiti Start-> All Programs -> AutoIt v3 sau in directorul AutoIt3 din Program Files.

Pentru a astepta fereastra, apelam functia WinWait:

WinWait("7-Zip 9.20 Setup ")

 

Un exemlpu folosind utilitarul AutoIt Window Info:

 

Daca dorim sa obtinem si directorul de instalare (in acest tutorial ne vom folosi de acest lucru) apelam functia ControlGetText, specificand numele ferestrei si controlul din care obtinem directorul de instalare, fara sa specificam textul ferestrei (in cele mai multe cazuri nici nu exista).

$sPath = ControlGetText("7-Zip 9.20 Setup ","","Edit1")

 

Apoi trebuie sa apasam butonul Install pentru a incepe procesul de instalare. Acest lucru se face apeland functia ControlClick, avand aceeasi parametri ca si functia ControlGetText, doar ca in cazul acesta apasam “Button2″ care este a doua instanta a clasei Button.

ControlClick("7-Zip 9.20 Setup ","","Button2″)

Modul de obtinere a claselor si instantele acestora dintr-o fereastra se face cum am mentionat anterior, folosind utilitarul AutoIt Window Info.

 

Procesul de instalare poate varia ca durata, in functie de performantele sistemului, de aceea trebuie gasita o solutie prin care sa stim exact cand s-a finalizat procesul de instalare.

Pentru acest lucru vom crea o bucla in care vom verifica daca apare numele butonului de final.

Do
	Sleep(10)
Until ControlGetText("7-Zip 9.20 Setup ","","Button2") = "&Finish"

 

La iesirea din bucla vom sti ca instalarea a ajuns la final. Tot ce mai trebuie sa facem este sa apasam butonul Finish.

ControlClick("7-Zip 9.20 Setup ","","Button2″)

 

Dupa ce este apasat butonul Finish, poate doriti sa informati utilizatorul ca instalarea a fost efectuata si sa intrebati daca doreste deschidere directorului de instalare.

$Question = MsgBox(0x44,"Mesaj","Instalare cu succes." & @CRLF & _
"Doriti deschiderea directorului de instalare?")

 

Mai trebuie doar tratat raspunsul utilizatorului:

If $Question = 6 Then
	ShellExecute($sPath)
Else
	Exit
EndIf

 

Daca asamblati toate liniile de cod de mai sus, scriptul va arata asa:

 

Daca rulati scriptul, la final de instalare va aparea mesajul:

Daca raspunsul este Yes se va deschide directorul de instalare (ca si in exemplul de mai jos) apoi scriptul se inchie, iar daca raspunsul este No atunci scriptul se incheie.

Puteti descarca de aici scriptul si executabilul utilitarului 7-Zip.


* Pentru orice intrebari sau nelamuriri legate de curs sau limbajul AutoIt accesati sectiunea AutoIt a forumului SkullBox sau platforma de suport tehnic NetHelp.