[..] bug sur logiciel d'install auto

Aide sur les Interfaces Graphique Utilisateurs (GUI).
Règles du forum
.
SurPriseS
Niveau 6
Niveau 6
Messages : 289
Enregistré le : jeu. 06 sept. 2007 11:35
Localisation : Finistère sud
Status : Hors ligne

[..] bug sur logiciel d'install auto

#1

Message 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=
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#2

Message 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 ;) )
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

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

#3

Message par codename44 »

salut

1 et 42 sont inclus dans la boucle :D , donc ce qu'il a mi me parait bon
Modifié en dernier par codename44 le jeu. 24 janv. 2008 17:27, modifié 2 fois.
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

#4

Message 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 ?)
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

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

#5

Message 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.
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

#6

Message 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)
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

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

#7

Message 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à :)
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

#8

Message 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...
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

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

#9

Message 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 ?
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

#10

Message par sylvanie »

Je me pause cette question : c'est toujours au même indice $i que tu as des erreurs ?
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

#11

Message 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....
codename44
Niveau 4
Niveau 4
Messages : 65
Enregistré le : sam. 22 déc. 2007 15:46
Status : Hors ligne

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

#12

Message 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
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

#13

Message 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:
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

#14

Message 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


 
 
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

#15

Message 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:
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

#16

Message 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
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#17

Message 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 ?
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

#18

Message 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 ;)
ani
Niveau 11
Niveau 11
Messages : 1826
Enregistré le : lun. 23 juil. 2007 12:31
Localisation : Bureau
Status : Hors ligne

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

#19

Message 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 :)
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

#20

Message par SurPriseS »

Oui pour titre.ini ^^
Répondre