Page 1 sur 1

[R] Contrôle d'erreur dans un GUI

Posté : mer. 20 juil. 2011 09:42
par mokoto
Bonjour,

J'essai de faire un programme qui permet d'utiliser 7zip rapidement.

Je suis bloqué avec le contrôle d'erreur quand je clique sur Lancer. En effet l'erreur reste en mémoire et du coup le programme ne peut plus fonctionner.

Voici le fichier ini :
[Chemin]
Adresse=C:\Program Files\7-Zip\7zG.exe
Destination=C:\Temp\Scripts\7zip auto\
Voici le code :
► Afficher le texte
Il faudrait peut être réinitialiser le case $Lancer mais comment?

Re: [..] Contrôle d'erreur dans un GUI

Posté : mer. 20 juil. 2011 11:21
par zeshrek
Hmmmm... Quelques choses me semblent bizares...
1/ Tes variables sont nommées n'importe comment :
-> $file contient le retour de FileSelectFolder qui comme son nom l'indique renvoie un dossier
-> $chemin contient la valeur de Adresse du fichier Ini, qui est en fait la référence a un executable
-> $Destination contient la valeur de Destination du fichier Ini, qui est en fait un chemin
2/ Et tant que j'y suisavec tes variables elles ne sont pas toutes déclarées ($nMsg, $Cible, $Chemin, $Destination...). Prend l'habitude de mettre un

Code : Tout sélectionner

AutoItSetOption("MustDeclareVars", 1)
au début de tes scripts, ca t'oblige a déclarer tes variables. C'est chi*nt au début, masi on en prend vite l'habitude et au final on gagne du temps, et de la cohérence.
3/ La ligne

Code : Tout sélectionner

$NomArchive = GUICtrlRead($NomArchive)
est la source de ton problème. On ne réaffecte pas a la variable qui contient l'ID d'un controle de la GUI la valeur du contenu de ce controle !!!
Ceci devrait mieux marcher:

Code : Tout sélectionner

        Case $Lancer
            $Archive = GUICtrlRead($NomArchive)
            $Chemin = IniRead("config.ini", "Chemin", "Adresse", "")
            $Destination = IniRead("config.ini", "Chemin", "Destination", "")

            If $File = "" Or $Archive = "" Then
                MsgBox(0, "Erreur", "erreur")
            Else
                Run($Chemin & " a -sfx " & Chr(34) & $Destination & $Archive & Chr(34) & " -mx5 -psecret -mhe " & Chr(34) & $Cible & Chr(34))
            EndIf

Re: [..] Contrôle d'erreur dans un GUI

Posté : mer. 20 juil. 2011 13:38
par mokoto
Merci pour tes conseils, j'ai corriger les problèmes comme tu me l'as indiqué et ça fonctionne.

voilà le script :
► Afficher le texte

Re: [..] Contrôle d'erreur dans un GUI

Posté : mer. 20 juil. 2011 13:55
par zeshrek
Mieux c'est !

Il te reste plus qu'a le passer en [R]