Page 1 sur 2

[..] bug sur logiciel d'install auto

Posté : jeu. 24 janv. 2008 11:59
par SurPriseS
Bonjour, vu que je viens de vous retrouvé, je vous expose mon problème, c'est malheureusement assez aléatoire (d'où le titre assez peu clair xD), je pense que le bug viens de cette partie du code :

Code : Tout sélectionner

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


for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = IniRead("log.ini",$i,"fichier","")

            download($fichier)
            unzip($fichier)
            MsgBox(0,"test",$fichier)
            install($fichier)
        EndIf   
Next



EndSelect
Wend
mais sans certitude, en gros par moment il me sort sur la msgbox de test une entrée vide... celà vous en l'air bien sur tout le reste du script... la ou sa se corse c'est que je suis quasi sur que sa m***** QUE quand [autoit]install($fichier)[/autoit] est validé... si je fait que le DL + le dézipage, j'ai pas l'impression de l'avoir (le bug)(quasi sur)... donc si les lanternes de vrai développeur pouvais m'éclairer :$

Je vous donne le code complet :

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)

;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


for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = IniRead("log.ini",$i,"fichier","")
            MsgBox(0,"test",$fichier)
            download($fichier)
            MsgBox(0,"test",$fichier)
            unzip($fichier)
            MsgBox(0,"test",$fichier)
            install($fichier)
        EndIf   
Next



EndSelect
Wend


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

$url =  $proto & "://" & $ip & $chemin & $fichier
$cmd = "wget.exe " & $url 
$affichage = "                                                                   "
sleep(500)
$affichage = "Telechargement de " & $fichier
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
runwait($cmd,'',@SW_hide)
$affichage = "Téléchargement terminée                                                      "
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Téléchargement terminée ."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Téléchargement terminée .."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Téléchargement terminée ..."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
EndFunc



;-------------------------Unzip :
Func unzip($fichier)
$cmd2 = "7za.exe x -y " & $fichier
$affichage = "                                                                   "
sleep(500)
$affichage = "Décompréssion de " & $fichier
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
runwait($cmd2,'',@SW_hide)
$affichage = "Décompréssion terminée                                                                   "
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Décompréssion terminée ."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Décompréssion terminée .."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Décompréssion terminée ..."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
EndFunc



;-------------------------Install :
Func install($fichier)
MsgBox(0,"test",$fichier)
$fichier_noext = StringSplit($fichier,".")
MsgBox(0,"test",$fichier_noext[1])
$dossier = @ScriptDir & "\" & $fichier_noext[1]
MsgBox(0,"test",$dossier)
FileChangeDir($dossier)
$search = FileFindFirstFile("auto*.exe")
$file = FileFindNextFile($search)
MsgBox(0,"test",$file)
$affichage = "                                                                                        "
sleep(500)
$affichage = "Installation de " & $fichier
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
;RunWait($file)
$affichage = "Installation terminée                                                                   "
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Installation terminée ."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Installation terminée .."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)
sleep(500)
$affichage = "Installation terminée ..."
$check60 = GUICtrlCreateLabel($affichage, 200, 450)


EndFunc



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


 


Cfg.ini :

Code : Tout sélectionner

[dl]
protocole=ftp
ip=192.168.0.100
chemin=/stock1/package_auto_5/

log.ini :

Code : Tout sélectionner

[1]
name=7zip
fichier=7zip.zip
[2]
name=acrobat reader
fichier=acrobat_reader.zip
[3]
name=avg
fichier=avg.zip
[4]
name=Java
fichier=Java.zip
[5]
name=maxicompte
fichier=maxicompte.zip
[6]
name=msn8
fichier=msn8.zip
[7]
name=nero
fichier=nero.zip
[8]
name=open office
fichier=open_office.zip
[9]
name=pcperso
fichier=pcperso.zip
[10]
name=PDFcreator
fichier=PDFcreator.zip
[11]
name=picasa
fichier=picasa.zip
[12]
name=vlc
fichier=vlc.zip
[13]
name=**********
fichier=
[14]
name=**********
fichier=
[15]
name=**********
fichier=
[16]
name=**********
fichier=
[17]
name=**********
fichier=
[18]
name=**********
fichier=
[19]
name=**********
fichier=
[20]
name=**********
fichier=
[21]
name=**********
fichier=
[22]
name=**********
fichier=
[23]
name=**********
fichier=
[24]
name=**********
fichier=
[25]
name=**********
fichier=
[26]
name=**********
fichier=
[27]
name=**********
fichier=
[28]
name=**********
fichier=
[29]
name=**********
fichier=
[30]
name=**********
fichier=
[31]
name=**********
fichier=
[32]
name=**********
fichier=
[33]
name=**********
fichier=
[34]
name=**********
fichier=
[35]
name=**********
fichier=
[36]
name=**********
fichier=
[37]
name=**********
fichier=
[38]
name=**********
fichier=
[39]
name=**********
fichier=
[40]
name=**********
fichier=
[41]
name=**********
fichier=
[42]
name=**********
fichier=

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

Posté : jeu. 24 janv. 2008 17:07
par ani
re :)

Petite erreur il me semble à ce niveau

Code : Tout sélectionner

for $i = 1 to 42
à changer en

Code : Tout sélectionner

for $i = 1 to 43
On compte 42 checkbox.(dans cette exemple "$ini_ckeckxx")
tu commence l'($i)ndice à 1 donc si on rajoute 42 çà donne 43, vu que ton premier checkbox sera en position 2 (excusez si l'explication est .... je comprendrais ;) )

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

Posté : jeu. 24 janv. 2008 17:19
par codename44
salut

1 et 42 sont inclus dans la boucle :D , donc ce qu'il a mi me parait bon

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

Posté : jeu. 24 janv. 2008 17:20
par SurPriseS
Je comprend pas trop la :oops:
j'utilise la boucle avec le $i pour aller chercher les info dans le ini donc sa va bien de 1 à 42 (ou je me plante carrément ?)

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

Posté : jeu. 24 janv. 2008 17:27
par codename44
sinon à ce niveau :

$fichier = IniRead("log.ini",$i,"fichier","")

rajoute une valeur par défaut, comme ça tu peux vérifier si le problème vient bien de la lecture du .ini, lorsque ta msgbox apparait elle ne sera plus vide mais devrait avoir la valeur par défaut lors du bug.

si elle est toujours vide malgré çà c'est que le problème vient d'ailleurs.

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

Posté : jeu. 24 janv. 2008 17:36
par SurPriseS
En gros, tu me dit de rajouté un truc pour décoché la box après la lecture du ini ?
(un peu fatigué en se moment faut m'expliquer doucement xD)

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

Posté : jeu. 24 janv. 2008 17:46
par codename44
euh.. non :p
enfait lors de ton bug, tu as une msgbox vide, je disais donc de rajouter une valeur par défaut lors de la lecture ici :

Code : Tout sélectionner

$fichier = IniRead("log.ini",$i,"fichier","")
donc par exemple

Code : Tout sélectionner

$fichier = IniRead("log.ini",$i,"fichier","la valeur n'a pas pu être lue")
comme ça lors du bug, soit tu as ce message, soit tu as toujours une msgbox vide
et ça permet d'orienter les idées..

voilà :)

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

Posté : jeu. 24 janv. 2008 17:50
par SurPriseS
A d'accord, j'avais pas pensé a sa :oops: je vais testé :) merci :)

>Edit : Alors, j'ai testé en effet quand sa marche pas j'ai la phrase "la valeur n'a pas pu être lue" qui s'affiche dans la box", MAIS sa ne le fait QUE quand j'active l'installation... si je fait que le DL et le dézip sa roule.... Je comprend vraiment pas le problème...

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

Posté : jeu. 24 janv. 2008 22:23
par codename44
je ne comprends pas où est-ce que tu actives ou désactives l'installation ?
je ne vois qu'une checkbox par programme, avec le bouton "install" uniquement, comment choisis tu de ne faire que le téléchargement et la décompression ?

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

Posté : jeu. 24 janv. 2008 22:32
par sylvanie
Je me pause cette question : c'est toujours au même indice $i que tu as des erreurs ?

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

Posté : ven. 25 janv. 2008 10:03
par SurPriseS
Codename44 :
ici :

Code : Tout sélectionner

for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = IniRead("log.ini",$i,"fichier","")
            MsgBox(0,"test",$fichier)
            download($fichier)
            MsgBox(0,"test",$fichier)
            unzip($fichier)
            MsgBox(0,"test",$fichier)
            install($fichier)
        EndIf  
Next
suffit de mettre un ; devant

Code : Tout sélectionner

 install($fichier)
et hop, c'est désactivé ^^

Sylvanie : J'ai l'impression mais j'arrive pas a en être sur... si je lance toujours les log 1 à 4 j'aurais toujours les erreurs sur les même fichiers... je déplace de 1 donc les fichiers de 2 à 5, les erreurs ne serons pas sur les même logiciels que sur 1 à 4... donc normalement pas le même indice $i....

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

Posté : sam. 26 janv. 2008 12:05
par codename44
salut

j'ai vu que tu avais rajouté 2 autres msgbox de test, c'est une bonne idée
lors de ton bug, les 3 s'ouvrent ou seulement la dernière ?
si il y en a qu'une qui s'ouvre, mets leur peut-être un titre différent

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

Posté : sam. 26 janv. 2008 18:18
par SurPriseS
Les trois s'ouvre correctement, mais avec une valeur nulle ...
J'ai mis le problème dans tout les sens, je trouve pas où sa part en live... :cry:

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

Posté : dim. 27 janv. 2008 22:44
par sylvanie
Bonsoir,
je ne pense pas avoir trouvé, mais j'ai réglé quelque petits points qui peuvent être dérangeants :
1) j'ai remplacer l'utilisation de $fichier par un référencement locale, c'est plus propre et ça évite les désagrément de modification non désiré par fonction
2) pour le message d'installation/unzip ... je pase par un ctrlset au lieu d'en créer un nouveau à chaque fois (surtout que le nombre de création de contrôle n'est pas infini, peut être pourrait il y avoir écrasement, mais j'en doute)
3) le message d'install / dezip ... reflette vraiment la durée de l'installation cer ne s'arrête qu'à la dispariotn du pid lancé (ça ne règle absolument en rien, mais c'est plus joli ^^ )

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


for $i = 1 to 42
        If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
            $fichier = IniRead("log.ini",$i,"fichier","")
            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
$lpid=runwait($cmd2,'',@SW_hide)
$affichage = "Décompréssion"
Update_action($affichage,$lpid)
EndFunc



;-------------------------Install :
Func install($fichier_param)
Local $lpid
MsgBox(0,"test",$fichier_param)
$fichier_noext = StringSplit($fichier_param,".")
MsgBox(0,"test",$fichier_noext[1])
$dossier = @ScriptDir & "\" & $fichier_noext[1]
MsgBox(0,"test",$dossier)
FileChangeDir($dossier)
$search = FileFindFirstFile("auto*.exe")
$file = FileFindNextFile($search)
MsgBox(0,"test",$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


 
 

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

Posté : lun. 28 janv. 2008 00:08
par SurPriseS
Merci beaucoup sylvanie et même si sa résoud pas les problèmes que j'avais, sa rend le code plus propre :oops: (c'est pas trop mon taff a la base la prog :oops: ) Bref, je test sa demain avec mon ftp pour voir se que sa donne :$

Merci beaucoup en tout cas :oops:

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

Posté : lun. 28 janv. 2008 14:32
par SurPriseS
Bon ben j'ai retesté et a mon grand désespoir sa fait toujours pareil ='(
Par contre tes petites modifs sont bien sympa et marche bien mieux que mes bidouilles :D

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

Posté : lun. 28 janv. 2008 15:24
par ani
Dans le point 3 de sylvanie (il est noté : çà ne régle absolument rien, mais c'est plus joli)

Quel erreur tu obtiend dans le debug de scite et a quel niveau il se bloque dès le premier download ?
N'ayant pas abordé les retour d'erreurs pour l'instant, il faudrai en indiqué pour savoir ou sa bloque.
Le fichier log.ini comporte 42 logiciel ou çà varie comme dans ton exemple (12) ?
wget est bien egal à cette cmd = ftp://192.168.0.100/stock1/package_auto_5/
Est-ce que les noms de fichier dans le fichier log.ini sont les mêmes que sur ton ftp ?

Petite modification
Dans la fonction download($fichier_parametre) retire a la variable $url ceux-ci "://" &
Dans le fichier cfg.ini change en çà
[dl]
protocole=ftp:
ip=//192.168.0.100
chemin=/stock1/package_auto_5/

Bein voilà.
je vais m'essayer à mon tour.
En faisant une modif (n'ayant pas wget) çà fonctionne et vous nan ?

Au niveau du unzip ton 7zip se trouve bien en racine du script ?

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

Posté : lun. 28 janv. 2008 16:18
par SurPriseS
le problème vient pas de la partie download, enfin je pense...
Pour les erreurs y'en a tout simplement pas...y'a juste un moment ou il "perd" la partie $fichier sur 2-3 cycles et puis sa refonctionne... le truc c'est que sa le fait UNIQUEMENT quand la partie "install" est lancé, si je laisse, juste download et dézip aucun soucis :\

D'ailleurs j'ai zappé une partie des CFG :
Titre.ini
[1]
titre=Pack Bureautique
[2]
titre=Pack Sécuritée
[3]
titre=Liens
[4]
titre=Pack Personnalisation
[5]
titre=Pack Basique

Par contre le coup du 12 sur 42, c'est juste pour test pour le moment et pouvoir rajouté d'autre logiciel dans le style ;)

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

Posté : lun. 28 janv. 2008 16:27
par ani
la partie installation c'est normal que çà zap sur quelque fichier, dans mon test j'ai aucun auto*.exe donc il passe tout, dans la fonction install faudra juste la modifier, je vais chercher quelque fichier dont y a auto*.exe et voir comment changer l'affaire ;)

Le fichier titre.ini sert pour les labels GUICtrlCreateGroup :)

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

Posté : lun. 28 janv. 2008 16:59
par SurPriseS
Oui pour titre.ini ^^