[..] bug sur logiciel d'install auto

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] bug sur logiciel d'install auto

#21

Message par sylvanie »

puisqu'on dirait que la lecture de l'ini peut être entravée par l'install, pour une raison qui nous échappe, ça vaut êut être le coups d'initiliser la lecture de tous les fichier au démarage :

Code : Tout sélectionner


...
création de la gui 
...
Dim $Name_file[42]
for $i = 0 to 41
    $Name_file[$i]=IniRead("log.ini",$i+1,"fichier","")
Next
for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = $Name_file[$i-1]
            ;$fichier=GuiCtrlRead(Eval("check" & $i),1)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
           download($fichier)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            unzip($fichier)
           ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            install($fichier)
            
            
        EndIf   
Next

... 
suite avec les fonctions
 
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] bug sur logiciel d'install auto

#22

Message par SurPriseS »

Bon j'ai continué avec ta solution et sa marche (j'ai l'impression) beaucoup mieux :oops:
Par contre je ne comprend pas pourquoi il ne lance plus le dézippage.... tout le reste a l'air de se passer normalement... Merci a tous en tout cas :oops:

Edit : j'ai trouvé un return en trop, mais je sais pas si il étais la pour faire autre chose :oops:

Code : Tout sélectionner

Func unzip($fichier_param)
Local $lpid
;Return
$cmd2 = "7za.exe x -y " & $fichier_param

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.2.4.9
 Author:         ToMs/SurPriseS

 Script Function:
    Menu package auto.

#ce ----------------------------------------------------------------------------

; Script Start


#include <GUIConstants.au3>
#include <Date.au3>
;#NoTrayIcon
AutoItSetOption("TrayAutoPause",0)  
AutoItSetOption("TrayIconDebug",1)
; GUI
GuiCreate("Speed Install - Design By ToMs - Code SurPriseS", 500, 470)
GUISetState (@SW_SHOW)

;picture
GuiCtrlCreatePic("logo.jpg",355,30, 120,40)
GUICtrlCreatelabel (_DateTimeFormat( _NowCalc(),2), 355,80)



;chkbox
$ini_titre1 = IniRead("titre.ini","1","titre","")
GUICtrlCreateGroup($ini_titre1, 10, 10, 150, 220)
$ini_ckeck1 = IniRead("log.ini","1","name","")
$check1 = GUICtrlCreateCheckbox ($ini_ckeck1, 20, 25, 120, 20)
$ini_ckeck2 = IniRead("log.ini","2","name","")
$check2 = GUICtrlCreateCheckbox ($ini_ckeck2, 20, 45, 120, 20)
$ini_ckeck3 = IniRead("log.ini","3","name","")
$check3 = GUICtrlCreateCheckbox ($ini_ckeck3, 20, 65, 120, 20)
$ini_ckeck4 = IniRead("log.ini","4","name","")
$check4 = GUICtrlCreateCheckbox ($ini_ckeck4, 20, 85, 120, 20)
$ini_ckeck5 = IniRead("log.ini","5","name","")
$check5 = GUICtrlCreateCheckbox ($ini_ckeck5, 20, 105, 120, 20)
$ini_ckeck6 = IniRead("log.ini","6","name","")
$check6 = GUICtrlCreateCheckbox ($ini_ckeck6, 20, 125, 120, 20)
$ini_ckeck7 = IniRead("log.ini","7","name","")
$check7 = GUICtrlCreateCheckbox ($ini_ckeck7, 20, 145, 120, 20)
$ini_ckeck8 = IniRead("log.ini","8","name","")
$check8 = GUICtrlCreateCheckbox ($ini_ckeck8, 20, 165, 120, 20)
$ini_ckeck9 = IniRead("log.ini","9","name","")
$check9 = GUICtrlCreateCheckbox ($ini_ckeck9, 20, 185, 120, 20)
$ini_ckeck10 = IniRead("log.ini","10","name","")
$check10 = GUICtrlCreateCheckbox ($ini_ckeck10, 20, 205, 120, 20)


$ini_titre2 = IniRead("titre.ini","2","titre","")
GUICtrlCreateGroup($ini_titre2, 170, 10, 150, 100)
$ini_ckeck11 = IniRead("log.ini","11","name","")
$check11 = GUICtrlCreateCheckbox ($ini_ckeck11, 180, 25, 120, 20)
$ini_ckeck12 = IniRead("log.ini","12","name","")
$check12 = GUICtrlCreateCheckbox ($ini_ckeck12, 180, 45, 120, 20)
$ini_ckeck13 = IniRead("log.ini","13","name","")
$check13 = GUICtrlCreateCheckbox ($ini_ckeck13, 180, 65, 120, 20)
$ini_ckeck14 = IniRead("log.ini","14","name","")
$check14 = GUICtrlCreateCheckbox ($ini_ckeck14, 180, 85, 120, 20)


$ini_titre3 = IniRead("titre.ini","3","titre","")
GUICtrlCreateGroup($ini_titre3, 170, 130, 150, 100)
$ini_ckeck15 = IniRead("log.ini","15","name","")
$check15 = GUICtrlCreateCheckbox ($ini_ckeck15, 180, 145, 120, 20)
$ini_ckeck16 = IniRead("log.ini","16","name","")
$check16 = GUICtrlCreateCheckbox ($ini_ckeck16, 180, 165, 120, 20)
$ini_ckeck17 = IniRead("log.ini","17","name","")
$check17 = GUICtrlCreateCheckbox ($ini_ckeck17, 180, 185, 120, 20)
$ini_ckeck18 = IniRead("log.ini","18","name","")
$check18 = GUICtrlCreateCheckbox  ($ini_ckeck18, 180, 205, 120, 20)


$ini_titre4 = IniRead("titre.ini","4","titre","")
GUICtrlCreateGroup($ini_titre4, 330, 130, 150, 100)
$ini_ckeck19 = IniRead("log.ini","19","name","")
$check19 = GUICtrlCreateCheckbox ($ini_ckeck19, 340, 145, 120, 20)
$ini_ckeck20 = IniRead("log.ini","20","name","")
$check20 = GUICtrlCreateCheckbox ($ini_ckeck20, 340, 165, 120, 20)
$ini_ckeck21 = IniRead("log.ini","21","name","")
$check21 = GUICtrlCreateCheckbox ($ini_ckeck21, 340, 185, 120, 20)
$ini_ckeck22 = IniRead("log.ini","22","name","")
$check22 = GUICtrlCreateCheckbox ($ini_ckeck22, 340, 205, 120, 20)


$ini_titre5 = IniRead("titre.ini","5","titre","")
GUICtrlCreateGroup($ini_titre5, 10, 235, 470, 170)
$ini_ckeck23 = IniRead("log.ini","23","name","")
$check23 = GUICtrlCreateCheckbox ($ini_ckeck23, 20, 250, 120, 20)
$ini_ckeck24 = IniRead("log.ini","24","name","")
$check24 = GUICtrlCreateCheckbox ($ini_ckeck24, 20, 270, 120, 20)
$ini_ckeck25 = IniRead("log.ini","25","name","")
$check25 = GUICtrlCreateCheckbox ($ini_ckeck25, 20, 290, 120, 20)
$ini_ckeck26 = IniRead("log.ini","26","name","")
$check26 = GUICtrlCreateCheckbox ($ini_ckeck26, 20, 310, 120, 20)
$ini_ckeck27 = IniRead("log.ini","27","name","")
$check27 = GUICtrlCreateCheckbox ($ini_ckeck27, 20, 330, 120, 20)
$ini_ckeck28 = IniRead("log.ini","28","name","")
$check28 = GUICtrlCreateCheckbox ($ini_ckeck28, 20, 350, 120, 20)
$ini_ckeck29 = IniRead("log.ini","29","name","")
$check29 = GUICtrlCreateCheckbox ($ini_ckeck29, 20, 370, 120, 20)

$ini_ckeck30 = IniRead("log.ini","30","name","")
$check30 = GUICtrlCreateCheckbox ($ini_ckeck30, 180, 250, 120, 20)
$ini_ckeck31 = IniRead("log.ini","31","name","")
$check31 = GUICtrlCreateCheckbox ($ini_ckeck31, 180, 270, 120, 20)
$ini_ckeck32 = IniRead("log.ini","32","name","")
$check32 = GUICtrlCreateCheckbox ($ini_ckeck32, 180, 290, 120, 20)
$ini_ckeck33 = IniRead("log.ini","33","name","")
$check33 = GUICtrlCreateCheckbox ($ini_ckeck33, 180, 310, 120, 20)
$ini_ckeck34 = IniRead("log.ini","34","name","")
$check34 = GUICtrlCreateCheckbox ($ini_ckeck34, 180, 330, 120, 20)
$ini_ckeck35 = IniRead("log.ini","35","name","")
$check35 = GUICtrlCreateCheckbox ($ini_ckeck35, 180, 350, 120, 20)
$ini_ckeck36 = IniRead("log.ini","36","name","")
$check36 = GUICtrlCreateCheckbox ($ini_ckeck36, 180, 370, 120, 20)

$ini_ckeck37 = IniRead("log.ini","37","name","")
$check37 = GUICtrlCreateCheckbox ($ini_ckeck37, 340, 250, 120, 20)
$ini_ckeck38 = IniRead("log.ini","38","name","")
$check38 = GUICtrlCreateCheckbox ($ini_ckeck38, 340, 270, 120, 20)
$ini_ckeck39 = IniRead("log.ini","39","name","")
$check39 = GUICtrlCreateCheckbox ($ini_ckeck39, 340, 290, 120, 20)
$ini_ckeck40 = IniRead("log.ini","40","name","")
$check40 = GUICtrlCreateCheckbox ($ini_ckeck40, 340, 310, 120, 20)
$ini_ckeck41 = IniRead("log.ini","41","name","")
$check41 = GUICtrlCreateCheckbox ($ini_ckeck41, 340, 330, 120, 20)
$ini_ckeck42 = IniRead("log.ini","42","name","")
$check42 = GUICtrlCreateCheckbox ($ini_ckeck42, 340, 350, 120, 20)

$check60 = GUICtrlCreateLabel("", 200, 450,200,50)
;Bouton

$Button_1 = GUICtrlCreateButton ("Install", 200, 420, 100)


While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit    
       
;--------------------- Bouton install      
Case $msg = $button_1

Dim $Name_file[42]
for $i = 0 to 41
    $Name_file[$i]=IniRead("log.ini",$i+1,"fichier","")
Next
for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = $Name_file[$i-1]
            ;$fichier=GuiCtrlRead(Eval("check" & $i),1)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
           download($fichier)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            unzip($fichier)
           ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            install($fichier)
           
           
        EndIf  
Next



EndSelect
Wend



;-------------------------------------------------FONCTION :
;-------------------------Download :
Func download($fichier_param)
local $lpid
if FileExists($fichier_param) then FileDelete($fichier_param)
$proto = IniRead("cfg.ini","dl","protocole","")
$ip = IniRead("cfg.ini","dl","ip","")
$chemin = IniRead("cfg.ini","dl","chemin","")

$url =  $proto & "://" & $ip & $chemin & $fichier_param
$cmd = "wget.exe " & $url
$lpid=run($cmd,'',@SW_hide)
$affichage = "Telechargement de " & $fichier_param
Update_action($affichage,$lpid)
EndFunc



;-------------------------Unzip :
Func unzip($fichier_param)
Local $lpid
;Return
$cmd2 = "7za.exe x -y " & $fichier_param
MsgBox(0,"test0",$fichier_param)
$lpid=runwait($cmd2,'',@SW_hide)
$affichage = "Décompréssion"
Update_action($affichage,$lpid)
EndFunc



;-------------------------Install :
Func install($fichier_param)
Local $lpid
MsgBox(0,"test1",$fichier_param)
$fichier_noext = StringSplit($fichier_param,".")
MsgBox(0,"test2",$fichier_noext[1])
$dossier = @ScriptDir & "\" & $fichier_noext[1]
MsgBox(0,"test3",$dossier)
FileChangeDir($dossier)
$search = FileFindFirstFile("auto*.exe")
$file = FileFindNextFile($search)
MsgBox(0,"test install",$file)
If $file="" Then Return
$lpid=Run($file)
$affichage = "Installation"
Update_action($affichage,$lpid)
EndFunc

Func Update_action($msg_param,$pid_param)
    Dim $progress[4]=["",".","..","..."]
    Local $local_ind=0
    GUICtrlSetData($check60,"")
    While ProcessExists($pid_param)
        GUICtrlSetData($check60,$msg_param&" en cours "&$progress[Mod($local_ind,4)])
        $local_ind+=1
        sleep(500)
    WEnd
    GUICtrlSetData($check60,$msg_param&" terminé(e)")
EndFunc

;-------------------------_ShellEx :
Func _ShellEx($sCmd)
  DllCall("shell32.dll", "long", "ShellExecute", "hwnd", 0, "string", '', "string", $sCmd, "string", '', "string", '', "long", @SW_SHOWNORMAL)
EndFunc  ;==>_ShellEx
 
Avatar du membre
sylvanie
Niveau 11
Niveau 11
Messages : 1550
Enregistré le : jeu. 26 juil. 2007 21:31
Localisation : Paris
Status : Hors ligne

Re: [..] bug sur logiciel d'install auto

#23

Message par sylvanie »

désolé pour le return, c'était pour neutraliser l'appel lors de mes tests, il ne sers à rien
Toi qui cherche à mettre le doigt sur la solution, appuie sur F1.
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] bug sur logiciel d'install auto

#24

Message par SurPriseS »

C'est la conclusion a laquelle je suis arrivé aussi ^^ mais y'a pas de problème grâce a vous le chti script fonctionne apparament :$ je le test grandeur nature demain :)

J'ai fait 2-3 modif aussi je les posterais demain si tout roule ;)

Merci beaucoup en tout cas :oops:
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

Re: [..] bug sur logiciel d'install auto

#25

Message par SurPriseS »

Bon voila, j'ai testé une fois pour le moment est tout a fonctionné comme sur des roulettes ^^
Je post donc le script avec un petit rajout :

- Gestion des bat ou exe pour lancer le nouveau script (toujours sous la forme auto*.exe ou auto*.bat)

Code : Tout sélectionner

#cs ----------------------------------------------------------------------------

 AutoIt Version: 3.2.4.9
 Author:         ToMs/SurPriseS

 Script Function:
    Menu package auto.

#ce ----------------------------------------------------------------------------

; Script Start


#include <GUIConstants.au3>
#include <Date.au3>
;#NoTrayIcon
AutoItSetOption("TrayAutoPause",0)  
AutoItSetOption("TrayIconDebug",1)
; GUI
GuiCreate("Speed Install - Design By ToMs - Code SurPriseS", 500, 470)
GUISetState (@SW_SHOW)

;picture
GuiCtrlCreatePic("logo.jpg",355,30, 120,40)
GUICtrlCreatelabel (_DateTimeFormat( _NowCalc(),2), 355,80)



;chkbox
$ini_titre1 = IniRead("titre.ini","1","titre","")
GUICtrlCreateGroup($ini_titre1, 10, 10, 150, 220)
$ini_ckeck1 = IniRead("log.ini","1","name","")
$check1 = GUICtrlCreateCheckbox ($ini_ckeck1, 20, 25, 120, 20)
$ini_ckeck2 = IniRead("log.ini","2","name","")
$check2 = GUICtrlCreateCheckbox ($ini_ckeck2, 20, 45, 120, 20)
$ini_ckeck3 = IniRead("log.ini","3","name","")
$check3 = GUICtrlCreateCheckbox ($ini_ckeck3, 20, 65, 120, 20)
$ini_ckeck4 = IniRead("log.ini","4","name","")
$check4 = GUICtrlCreateCheckbox ($ini_ckeck4, 20, 85, 120, 20)
$ini_ckeck5 = IniRead("log.ini","5","name","")
$check5 = GUICtrlCreateCheckbox ($ini_ckeck5, 20, 105, 120, 20)
$ini_ckeck6 = IniRead("log.ini","6","name","")
$check6 = GUICtrlCreateCheckbox ($ini_ckeck6, 20, 125, 120, 20)
$ini_ckeck7 = IniRead("log.ini","7","name","")
$check7 = GUICtrlCreateCheckbox ($ini_ckeck7, 20, 145, 120, 20)
$ini_ckeck8 = IniRead("log.ini","8","name","")
$check8 = GUICtrlCreateCheckbox ($ini_ckeck8, 20, 165, 120, 20)
$ini_ckeck9 = IniRead("log.ini","9","name","")
$check9 = GUICtrlCreateCheckbox ($ini_ckeck9, 20, 185, 120, 20)
$ini_ckeck10 = IniRead("log.ini","10","name","")
$check10 = GUICtrlCreateCheckbox ($ini_ckeck10, 20, 205, 120, 20)


$ini_titre2 = IniRead("titre.ini","2","titre","")
GUICtrlCreateGroup($ini_titre2, 170, 10, 150, 100)
$ini_ckeck11 = IniRead("log.ini","11","name","")
$check11 = GUICtrlCreateCheckbox ($ini_ckeck11, 180, 25, 120, 20)
$ini_ckeck12 = IniRead("log.ini","12","name","")
$check12 = GUICtrlCreateCheckbox ($ini_ckeck12, 180, 45, 120, 20)
$ini_ckeck13 = IniRead("log.ini","13","name","")
$check13 = GUICtrlCreateCheckbox ($ini_ckeck13, 180, 65, 120, 20)
$ini_ckeck14 = IniRead("log.ini","14","name","")
$check14 = GUICtrlCreateCheckbox ($ini_ckeck14, 180, 85, 120, 20)


$ini_titre3 = IniRead("titre.ini","3","titre","")
GUICtrlCreateGroup($ini_titre3, 170, 130, 150, 100)
$ini_ckeck15 = IniRead("log.ini","15","name","")
$check15 = GUICtrlCreateCheckbox ($ini_ckeck15, 180, 145, 120, 20)
$ini_ckeck16 = IniRead("log.ini","16","name","")
$check16 = GUICtrlCreateCheckbox ($ini_ckeck16, 180, 165, 120, 20)
$ini_ckeck17 = IniRead("log.ini","17","name","")
$check17 = GUICtrlCreateCheckbox ($ini_ckeck17, 180, 185, 120, 20)
$ini_ckeck18 = IniRead("log.ini","18","name","")
$check18 = GUICtrlCreateCheckbox  ($ini_ckeck18, 180, 205, 120, 20)


$ini_titre4 = IniRead("titre.ini","4","titre","")
GUICtrlCreateGroup($ini_titre4, 330, 130, 150, 100)
$ini_ckeck19 = IniRead("log.ini","19","name","")
$check19 = GUICtrlCreateCheckbox ($ini_ckeck19, 340, 145, 120, 20)
$ini_ckeck20 = IniRead("log.ini","20","name","")
$check20 = GUICtrlCreateCheckbox ($ini_ckeck20, 340, 165, 120, 20)
$ini_ckeck21 = IniRead("log.ini","21","name","")
$check21 = GUICtrlCreateCheckbox ($ini_ckeck21, 340, 185, 120, 20)
$ini_ckeck22 = IniRead("log.ini","22","name","")
$check22 = GUICtrlCreateCheckbox ($ini_ckeck22, 340, 205, 120, 20)


$ini_titre5 = IniRead("titre.ini","5","titre","")
GUICtrlCreateGroup($ini_titre5, 10, 235, 470, 170)
$ini_ckeck23 = IniRead("log.ini","23","name","")
$check23 = GUICtrlCreateCheckbox ($ini_ckeck23, 20, 250, 120, 20)
$ini_ckeck24 = IniRead("log.ini","24","name","")
$check24 = GUICtrlCreateCheckbox ($ini_ckeck24, 20, 270, 120, 20)
$ini_ckeck25 = IniRead("log.ini","25","name","")
$check25 = GUICtrlCreateCheckbox ($ini_ckeck25, 20, 290, 120, 20)
$ini_ckeck26 = IniRead("log.ini","26","name","")
$check26 = GUICtrlCreateCheckbox ($ini_ckeck26, 20, 310, 120, 20)
$ini_ckeck27 = IniRead("log.ini","27","name","")
$check27 = GUICtrlCreateCheckbox ($ini_ckeck27, 20, 330, 120, 20)
$ini_ckeck28 = IniRead("log.ini","28","name","")
$check28 = GUICtrlCreateCheckbox ($ini_ckeck28, 20, 350, 120, 20)
$ini_ckeck29 = IniRead("log.ini","29","name","")
$check29 = GUICtrlCreateCheckbox ($ini_ckeck29, 20, 370, 120, 20)

$ini_ckeck30 = IniRead("log.ini","30","name","")
$check30 = GUICtrlCreateCheckbox ($ini_ckeck30, 180, 250, 120, 20)
$ini_ckeck31 = IniRead("log.ini","31","name","")
$check31 = GUICtrlCreateCheckbox ($ini_ckeck31, 180, 270, 120, 20)
$ini_ckeck32 = IniRead("log.ini","32","name","")
$check32 = GUICtrlCreateCheckbox ($ini_ckeck32, 180, 290, 120, 20)
$ini_ckeck33 = IniRead("log.ini","33","name","")
$check33 = GUICtrlCreateCheckbox ($ini_ckeck33, 180, 310, 120, 20)
$ini_ckeck34 = IniRead("log.ini","34","name","")
$check34 = GUICtrlCreateCheckbox ($ini_ckeck34, 180, 330, 120, 20)
$ini_ckeck35 = IniRead("log.ini","35","name","")
$check35 = GUICtrlCreateCheckbox ($ini_ckeck35, 180, 350, 120, 20)
$ini_ckeck36 = IniRead("log.ini","36","name","")
$check36 = GUICtrlCreateCheckbox ($ini_ckeck36, 180, 370, 120, 20)

$ini_ckeck37 = IniRead("log.ini","37","name","")
$check37 = GUICtrlCreateCheckbox ($ini_ckeck37, 340, 250, 120, 20)
$ini_ckeck38 = IniRead("log.ini","38","name","")
$check38 = GUICtrlCreateCheckbox ($ini_ckeck38, 340, 270, 120, 20)
$ini_ckeck39 = IniRead("log.ini","39","name","")
$check39 = GUICtrlCreateCheckbox ($ini_ckeck39, 340, 290, 120, 20)
$ini_ckeck40 = IniRead("log.ini","40","name","")
$check40 = GUICtrlCreateCheckbox ($ini_ckeck40, 340, 310, 120, 20)
$ini_ckeck41 = IniRead("log.ini","41","name","")
$check41 = GUICtrlCreateCheckbox ($ini_ckeck41, 340, 330, 120, 20)
$ini_ckeck42 = IniRead("log.ini","42","name","")
$check42 = GUICtrlCreateCheckbox ($ini_ckeck42, 340, 350, 120, 20)

$check60 = GUICtrlCreateLabel("", 200, 450,200,50)
;Bouton

$Button_1 = GUICtrlCreateButton ("Install", 200, 420, 100)


While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Exit    
       
;--------------------- Bouton install      
Case $msg = $button_1

Dim $Name_file[42]
for $i = 0 to 41
    $Name_file[$i]=IniRead("log.ini",$i+1,"fichier","")
Next
for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = $Name_file[$i-1]
            ;$fichier=GuiCtrlRead(Eval("check" & $i),1)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
           download($fichier)
            ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            unzip($fichier)
           ConsoleWrite("iniread fichier "&$i&" "&$fichier&@CRLF)
            install($fichier)
               
        EndIf  
Next



EndSelect
Wend



;-------------------------------------------------FONCTION :
;-------------------------Download :
Func download($fichier_param)
local $lpid
if FileExists($fichier_param) then FileDelete($fichier_param)
$proto = IniRead("cfg.ini","dl","protocole","")
$ip = IniRead("cfg.ini","dl","ip","")
$chemin = IniRead("cfg.ini","dl","chemin","")

$url =  $proto & "://" & $ip & $chemin & $fichier_param
$cmd = "wget.exe " & $url
$lpid=run($cmd,'',@SW_hide)
$affichage = "Telechargement de " & $fichier_param
Update_action($affichage,$lpid)
EndFunc



;-------------------------Unzip :
Func unzip($fichier_param)
Local $lpid
$cmd2 = "7za.exe x -y " & $fichier_param
$lpid=runwait($cmd2,'',@SW_hide)
$affichage = "Décompréssion"
Update_action($affichage,$lpid)
EndFunc



;-------------------------Install :
Func install($fichier_param)
Local $lpid
$fichier_noext = StringSplit($fichier_param,".")
$dossier = @ScriptDir & "\" & $fichier_noext[1]
FileChangeDir($dossier)
$search = FileFindFirstFile("auto*.exe")
$file = FileFindNextFile($search)

if $file = "" Then
    $search = FileFindFirstFile("auto*.bat")
    $file = FileFindNextFile($search)
endif

If $file="" Then Return
$lpid=Run($file)
$affichage = "Installation"
Update_action($affichage,$lpid)
$dossier = @ScriptDir
FileChangeDir($dossier)
EndFunc

Func Update_action($msg_param,$pid_param)
    Dim $progress[4]=["",".","..","..."]
    Local $local_ind=0
    GUICtrlSetData($check60,"")
    While ProcessExists($pid_param)
        GUICtrlSetData($check60,$msg_param&" en cours "&$progress[Mod($local_ind,4)])
        $local_ind+=1
        sleep(500)
    WEnd
    GUICtrlSetData($check60,$msg_param&" terminé(e)")
EndFunc

;-------------------------_ShellEx :
Func _ShellEx($sCmd)
  DllCall("shell32.dll", "long", "ShellExecute", "hwnd", 0, "string", '', "string", $sCmd, "string", '', "string", '', "long", @SW_SHOWNORMAL)
EndFunc  ;==>_ShellEx
 
Répondre