Page 1 sur 1

[R] Simplifier code de lecture d'un controle

Posté : mar. 06 nov. 2007 18:23
par SurPriseS
Salut, je sais le titre n'est pas super clair, mais le problème non plus (en faite y'a pas vraiment de problème ^^)

Bon le code est ici :

http://www.k1der.net/~surprise/wikipti/ ... toit:menu2

(désolé je le reposterais ici des que j'ai le logiciel pour mettre la couleur car je l'ai pas ici)

En faite je pense qu'il y'a moyen de simplifier grandement tout le code , j'ai essayer de le faire ici (si dessous) mais cela ne fonctionne pas ... donc je sais pas si cela est possible...

;--------------------- Bouton install

Code : Tout sélectionner

Case $msg = $button_1
 
$i = 1
for $i = 1 to 11
        If BitAnd(GuiCtrlRead( "$check" & $i),$GUI_CHECKED) Then
            $fichier = IniRead("log.ini",$i,"fichier","")
            MsgBox(0,"test",$fichier)
            ;download($fichier)
            ;unzip($fichier)
        EndIf   
    $i = $i + 1
Next

 
Voila en gros le script marche bien mais j'aurais besoin de conseil pour voir si j'ai pas fait des bêtises ou autre ;)
Merci

Posté : mar. 06 nov. 2007 21:59
par sylvanie
utilise

Code : Tout sélectionner

If BitAnd(GuiCtrlRead(Eval("check" & $i)),$GUI_CHECKED) Then
par contre, $i commence à 23 dans ton cas et pas 1 pour les id de controle. Ensuite il faudra retrancher 22 pour retomber pilpoil sur les entrées de ton fichier ini

Posté : mar. 06 nov. 2007 23:35
par Tlem
Bonsoir,

Dans votre code, vous commencer par : $i = 1
Mais dans ce cas quel est l'intéret de faire une boucle If dans laquelle vous re-déclarer $i ?

Idem à la fin, vous faites : $i = $i + 1
Cela n'a aucun sens puisque $i est déjà utilisé dans la boucle.

Posté : mer. 07 nov. 2007 16:03
par SurPriseS
Salut, merci pour vos réponses ;)
Donc merci sylvanie sa marche nikel avec le pti bout de commande qui va bien ;)
J'ai donc pu simplifier une partie du code :)
Pour Tlem, en effet c'est une erreur ;) j'utilise très peu for alors j'ai pas pensé ne pas mettre les déclarations et le +1 ;)

grâce a vous 2 tout marche nikel :)
Je récupère le forumcolor et je poste les modif ici ;)

Bon voila le code :

Code : Tout sélectionner

#cs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
AutoIt Version: 3.2.4.9
Author: ToMs/SurPriseS
Script Function:
Menu package auto.
#ce - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
; Script Start #include <GUIConstants>
#include <Date>
;#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 ) 
unzip ( $fichier ) 
;install ( $fichier ) 
EndIf Next
EndSelect
Wend

Posté : mer. 07 nov. 2007 16:59
par SurPriseS
Bon sa passe pas sur un seul post alors voila la suite :p et en prime un lien avec tout le nécessaire pour testé si quelqu'un veut ;) (non compiler)

http://www.k1der.net/~surprise/package_auto_test.zip

Code : Tout sélectionner

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 ) 
$fichier_noext = StringSplit ( $fichier , " . " ) 
$dossier = @ScriptDir & " \ " & $fichier_noext[1] 
FileChangeDir ( $dossier ) 
$search = FileFindFirstFile ( " auto*.exe " ) 
$file = FileFindNextFile ( $search ) 
$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

Posté : mer. 07 nov. 2007 17:23
par SurPriseS
Bon quelques explication sur le script :

Il est réglable par fichier INI : 3 fichiers, un pour la config des "titres", un pour la config du ftp, et le dernier pour la config des logiciels.
(j'ai préféré séparer pour simplifier les fichiers)

Pour que cela marche le zip doit contenir le logiciel a installé ainsi que le fichier d'automatisation ne doit pas avoir de point(autre que le .zip)/espace (bien que espace sa doit marcher j'ai pas essayer)
Le fichier d'installation doit être du type auto*.exe

Le script lanceras les installations a la suite les une des autres.


Sinon je compte virer l'utilisation de wget et passer par inet ;)
Après si vous avez des idées pour l'améliorer je suis tout ouïe ;)

Posté : mer. 07 nov. 2007 18:12
par Voodoo
tu pourrais faire un tableau a 2 dimensions pour les créations de checkbox. Avec la première colonne le titre et la deuxième le guictrlcreate. Sa te ferais gagner 100 lignes \o/.

Posté : mer. 07 nov. 2007 20:41
par SurPriseS
Je sais pas comment on fait :D
Bon demain j'essaye de regarder sa ^^