Page 1 sur 1
[R] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 13:21
par wilfriedarma
Bonjour ;
Je suis actuellement en train d'écrire un script pour automatiser l’installation de driver selon le non d'un ordinateur ( ou la saisi est manuel ). Mon problème est qu'il me dit qu'il ne trouve pas la balise While quand il est a la WEnd ... je ne trouve pas de solution, votre aide me serait favorable.
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$GUI = GUICreate("Ma GUI", 200, 200, 300, 200)
$Bouton1 = GUICtrlCreateButton("OK", 60, 130, 75, 25)
GUISetState(@SW_SHOW)
$text1 = GUICtrlCreateLabel ("Pour pourvoir installer les drivers de l'ordinateur, vous devez renseillé les 4 dernier chiffre du nom de l'ordinateur" ,20,30,160,60)
$text3 = GUICtrlCreateLabel ("UC" ,30,100)
$UC0000 = GUICtrlCreateinput ("",50,97, 95)
$CBouton1 = 0
While ($CBouton1 = 1)
select
Case $GUI_EVENT_CLOSE
Exit
Case $Bouton1
if ( $UC0000 <> "") Then
MsgBox (0,"","veillez entrer le nom de l'ordinateur")
Else
$CBouton1 = 1
EndIf
WEnd
MsgBox (0,"","UC"$UC0000)
PS : excusez moi pour l’ortographe si elle est problématique
Wilfriedarma
Re: [..] Problaime avec fonction While au debut de mon scrip
Posté : lun. 11 juin 2012 13:26
par TommyDDR
1) Regardez l'aide de Select dans la Doc
2) Select ne s'utilise pas comme cela, orientez vous vers Switch
3)
$CBouton1 étant égal à 0 juste avant le while (signifiant "Tant que"), vous ne rentrerez donc jamais dans celui-ci.
4) $UC0000 ne contient pas le texte entré dans l'input (Voir "Remarks" de l'aide de GUICtrlCreateInput)
5) Pour afficher une chaine de caractère puis une variable, il faut y insérer un "&" entre les deux Exemple :
Pour un peu plus de crédibilité :
Problaime ->
Problème.
Re: [..] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 14:14
par wilfriedarma
Merci beaucoup...
( faute corrigée en douce )
maintenant j'ai un autre petit problème les boutons ne fonctionnent pas ( Fermé et OK [$bouton1]):(
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$GUI = GUICreate("Ma GUI", 200, 200, 300, 200)
$Bouton1 = GUICtrlCreateButton("OK", 60, 130, 75, 25)
GUISetState(@SW_SHOW)
$text1 = GUICtrlCreateLabel ("Pour pourvoir installer les drivers de l'ordinateur, vous devez renseigné les 4 dernier chiffre du nom de l'ordinateur" ,20,30,160,60)
$text3 = GUICtrlCreateLabel ("UC" ,30,100)
$UC0000 = GUICtrlCreateinput ("0000",50,97, 95)
$CBouton1 = 0
$suite1 = 0
While ($CBouton1 = 0)
Switch 1
Case $GUI_EVENT_CLOSE
Exit
Case $Bouton1
$suite1 = 1
EndSwitch
If(($UC0000 >= 0001) and ($UC0000 <= 9999)) then
$suite2 = 1
Else
$suite2 = 0
EndIf
if (($suite1 = 1) and ($suite2 = 1)) then
$CBouton1 = 1
ElseIf (($suite1 = 1) and ($suite2 = 0 ))then
MsgBox (0,"","veillez entrer le nom de l'ordinateur")
ElseIf ($suite1 = 0)then
EndIf
WEnd
MsgBox (0,"","UC" & $UC0000)
Re: [..] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 14:27
par sylvanie
bonjour,
juste pour info, le nom local de l'ordinateur est renseigné dans la variable : @ComputerName
[EDIT]
sinon pour votre pb de bouton :
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$GUI = GUICreate("Ma GUI", 200, 200, 300, 200)
$Bouton1 = GUICtrlCreateButton("OK", 60, 130, 75, 25)
GUISetState(@SW_SHOW)
$text1 = GUICtrlCreateLabel ("Pour pourvoir installer les drivers de l'ordinateur, vous devez renseigné les 4 dernier chiffre du nom de l'ordinateur" ,20,30,160,60)
$text3 = GUICtrlCreateLabel ("UC" ,30,100)
$UC0000 = GUICtrlCreateinput ("0000",50,97, 95)
$CBouton1 = 0
$suite1 = 0
While ($CBouton1 = 0)
While Not $suite1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $Bouton1
$suite1 = 1
EndSwitch
WEnd
If(($UC0000 >= 0001) and ($UC0000 <= 9999)) then
$suite2 = 1
Else
$suite2 = 0
EndIf
if (($suite1 = 1) and ($suite2 = 1)) then
$CBouton1 = 1
ElseIf (($suite1 = 1) and ($suite2 = 0 ))then
MsgBox (0,"","veillez entrer le nom de l'ordinateur")
ElseIf ($suite1 = 0)then
EndIf
WEnd
MsgBox (0,"","UC" & $UC0000)
Re: [..] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 14:52
par wilfriedarma
sylvanie a écrit :bonjour,
juste pour info, le nom local de l'ordinateur est renseigné dans la variable : @ComputerName
Merci, Je le sais mais comme l'exécution du script ce fait au premier démarrage de l'ordinateur avec un master automatiser la saisi du nom de l'ordinateur ne pourra être fait plus tard ou dans le script ( si possible ( j'ai pas encor fait de recherche sur cela))
EDIT : Merci le problème de bouton est résolu mais il me répond toujours par 6 ( UC6 ) ( peut importe ce que j'écris dans $UC0000 )
Re: [..] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 16:02
par mikell
If (GuiCtrlRead($UC0000) >= 0001) ... etc
Re: [..] Problème avec une boucle qui ne se ferme pas
Posté : lun. 11 juin 2012 16:22
par wilfriedarma
Merci beaucoup ça fonctionne
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
$GUI = GUICreate("Ma GUI", 200, 200, 300, 200)
$Bouton1 = GUICtrlCreateButton("OK", 60, 130, 75, 25)
GUISetState(@SW_SHOW)
$text1 = GUICtrlCreateLabel ("Pour pourvoir installer les drivers de l'ordinateur, vous devez renseigné les 4 dernier chiffre du nom de l'ordinateur" ,20,30,160,60)
$text3 = GUICtrlCreateLabel ("UC" ,30,100)
$UC0000 = GUICtrlCreateinput ("",50,97, 95)
$CBouton1 = 0
$suite1 = 0
While ($CBouton1 = 0)
While Not $suite1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE
Exit
Case $Bouton1
$suite1 = 1
EndSwitch
WEnd
If (GuiCtrlRead($UC0000) >= 0001) and (GuiCtrlRead($UC0000) <= 9999) then
$suite2 = 1
Else
$suite2 = 0
EndIf
if (($suite1 = 1) and ($suite2 = 1)) then
$CBouton1 = 1
ElseIf (($suite1 = 1) and ($suite2 = 0 ))then
MsgBox (0,"","veillez entrer le nom de l'ordinateur")
$suite1 = 0
ElseIf ($suite1 = 0)then
EndIf
WEnd
MsgBox (0,"","UC" & GuiCtrlRead($UC0000))