[R] Lecture d'une Checkbox grâce à son Label

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

[R] Lecture d'une Checkbox grâce à son Label

#1

Message par Bayo »

Bonjour,

Je voulais savoir si il était possible de savoir si une Checkbox est coché ou non grâce à son Label.

En faite j'aimerai en lisant les Sections d'un fichier ini dans une boucle, vérifier si la checkbox qui aurait le même nom est coché ou pas. Si c'est possible je dois mal m'y prendre

Dans l'exemple, lorsque ça lis la section EXCEL dans le fichier ini j'aimerai voir si la checkbox avec le label excel est coché.
Merci pour votre aide.

Code : Tout sélectionner

Global $excel = GUICtrlCreateCheckbox("Excel", 40, 32, 137, 17)

$ini = @ScriptDir & "\logiciels.ini" 

            $lop = IniReadSectionNames($ini) ; On place notre commande dans une variable
            For $i = 1 To $lop[0] ;on commence la boucle pour analyser ligne par ligne le fichier
                If GUICtrlSetState($lop[$i], $GUI_CHECKED) Then
..
Else
EndIf
 
Modifié en dernier par Bayo le mar. 20 mai 2014 10:13, modifié 1 fois.
Avatar du membre
blacksoul305
Membre émérite
Membre émérite
Messages : 957
Enregistré le : ven. 18 mars 2011 11:49
Localisation : Au pays des programmeurs.
Status : Hors ligne

Re: [..]Lecture d'une Checkbox grâce à son Label

#2

Message par blacksoul305 »

Bonsoir,

voici un code qui devrait fonctionner de la façon demandée.
► Afficher le texte
Étudiant en 2ème année de Licence Informatique.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11818
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Lecture d'une Checkbox grâce à son Label

#3

Message par Tlem »

Bonsoir.
Pour faire ce que vous demandez, vous avez besoin de la fonction _IsChecked() présente sur ce forum et de la fonction Eval pour transformer la valeur récupérée du fichier .ini en la valeur correspondante de votre script.

A condition que le label corresponde à l'ID. Sinon vous devrez trouver l'ID grâce au label et seulement après vous pourrez tester son état. ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Lecture d'une Checkbox grâce à son Label

#4

Message par mikell »

Code : Tout sélectionner

If GuiCtrlRead($checkbox, 1) = "Excel" AND GuiCtrlRead($checkbox, 0) = $GUI_CHECKED Then _
    Msgbox(0,"", "la checkbox Excel est cochée")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

Re: [..] Lecture d'une Checkbox grâce à son Label

#5

Message par Bayo »

Bonjour,

Merci à vous 3 pour vos réponses. La solution de Mikell ne correspond pas car il me faut la variable de la Checkbox or je ne l'ai pas. Par contre celle de blacksoul305 me va bien mais je n'arrive pas à la faire fonctionner, le ControlCommand me renvoi toujours 0 malgré que la case soit coché. J'ai même essayé de remplacer [CLASS:Button; TEXT:" & $temp[$i] & "] par [CLASS:Button; TEXT:Excel] dans mon exemple mais pareil.

Je vais essayer la solution de Tlem.

Merci.
Bayo
Niveau 4
Niveau 4
Messages : 79
Enregistré le : mer. 23 avr. 2014 10:19
Status : Hors ligne

[R] Lecture d'une Checkbox grâce à son Label

#6

Message par Bayo »

En mélangeant les solutions de Mikell et Tlem, j'ai réussi à obtenir le résultat souhaité, le voici.

Code : Tout sélectionner

$ini = @ScriptDir & "\logiciels.ini" 

$lop = IniReadSectionNames($ini) 
For $i = 1 To $lop[0]
       $temp = Eval($lop[$i])
       If GUICtrlRead($temp, 1) = $lop[$i] And GUICtrlRead($temp, 0) = $GUI_CHECKED Then
Merci de votre aide.
Répondre