AutoIt Français

Nouveau forum : http://www.autoitscript.fr/
 
AccueilFAQRechercherS'enregistrerMembresGroupesConnexionhttp://www.autoitscript.fr

Partagez | 
 

 [RESOLU]Probleme avec case $msg

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Vins83
Membre affirmé


Nombre de messages : 106
Localisation : Hyeres (83)
Date d'inscription : 28/02/2007

MessageSujet: [RESOLU]Probleme avec case $msg   2007-04-27, 20:00

Voilà mon probleme,plus que des mots,voilà le script,le pb se situe ligne 36.
le registre n'existe pas,donc,je ne devrais voir que le boutton " vallider " et rien de plus..

#include < GUIConstants.au3>
#include < GuiCombo.au3>

Dim $SCardSvritem

GUICreate ( "test", 130 , 110 )

$okbutton = GuiCtrlCreateButton ( "Vallider" , 20 , 80 , 90 , 20 )

if RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr1" , "Start") then
$SCardSvritem = GUICtrlCreateLabel ( "Carte à puce" ,20,20 )
GUICtrlSetImage (-1, "shell32.dll",193)
$2 = GUICtrlCreateCombo ( "Automatique" , 20 , 45 , 90 , 20 )
GUICtrlSetData ( $2 , "Manuel|Désactiver" )
GUICtrlSetState ( - 1 , $GUI_HIDE )
$varSCardSvr = RegRead ( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr" , "Start" )
Switch $varSCardSvr
case 2
$My_stringSCardSvr = "Automatique"
Case 3
$My_stringSCardSvr = "Manuel"
Case 4
$My_stringSCardSvr = "Désactiver"
EndSwitch
_GUICtrlComboSelectString ( $2 , - 1 , $My_stringSCardSvr )
endif

GUISetState ( )

While 1
$msg = GUIGetMsg ( )

Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop


case $msg = $SCardSvritem
if RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr1" , "Start") then
GUIctrlSetState ( $2 , $GUI_SHOW )
EndIf
Case $msg = $okbutton
if RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr1" , "Start") then
$My_stringSCardSvr = GUICtrlRead ( $2 )
Switch $My_stringSCardSvr
case "Automatique"
$varSCardSvr = 2
case "Manuel"
$varSCardSvr = 3
Case "Désactiver"
$varSCardSvr = 4
Case Else
ContinueLoop
EndSwitch
RegWrite ( "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr" , "Start" , "REG_DWORD" , $varSCardSvr )
endif
EndSelect
WEnd










Merci Beaucoup

@+ Vins


Dernière édition par le 2007-04-29, 11:19, édité 2 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-27, 20:51

tu comprend ce que tu fait ?

comme çà a vu de nez de novice je dirais que la condition que tu propose ne marchera pas ..

si clé machin alors caché < 1er ligne

tu doit faire une négation du genre ::

[b]if[/b] [i]not[/i] clé then caché(gui_hide)
[u][b]else[/b][/u]
guictrlsetdata(-1,$GUI_Show)
[b]endif[/b]


et retirer la ligne 36 à 39 (sauf si je me trompe alors désolé)

mais je ferai comme çà


GUICreate ( "test", 130 , 110 )
$okbutton = GuiCtrlCreateButton ( "Valider" , 20 , 80 , 90 , ;;;
;;
_GUICtrlComboSelectString ( $2 , - 1 , $My_stringSCardSvr )
Else
GUIctrlSetState ( -1 , $GUI_SHOW )
endif
GUISetState ( )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vins83
Membre affirmé


Nombre de messages : 106
Localisation : Hyeres (83)
Date d'inscription : 28/02/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-27, 21:20

Le probleme,c'est qu'il risque d'avoir d'autre condition en ligne 36:

comme:

case $msg = $SCardSvritem
if RegRead("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSCardSvr1" , "Start") then
GUIctrlSetState ( $2 , $GUI_SHOW )
GUIctrlSetState ( $4 , $GUI_HIDE )
GUIctrlSetState ( $6 , $GUI_HIDE )
EndIf

et si il n'est pas afficher,si la condition est bonne est que le combo est montré,je vais tous les voir et c'est pas bon..

@+ Vins
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-27, 22:00

ok, bon je rentre chez moi et je verrai

(j'ai du dire une bétise au post précédent ,excuse)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-27, 23:51

RRAAAHH, le vieu démon du else manquant a encore frappé ! Des génaration de développeurs le combattent sans merci, mais il renait toujours sous une autre forme, Diablo 3 Autoit Extension bientôt en réseau .
Bon j'arrête le délir :

à la ligne 9 tu mets :
if RegRead("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesSCardSvr1" , "Start") then

Si c'est vrai tu construit ta GUI, dont le contrôle "$SCardSvritem"

Sinon ... et bien tu continue ton programme comme i de rien n'était
du coups la ligne 36 rencontre le test suivant :
si $msg= 1 variable que je n'ai jamais rencontrée (puisqu'on est dans le cas faux)
d'où le message d'erreur pertinant de l'interpréteur :"(36) : ==>variable used without being declared"

pour palier à ceci ajoute au niveau de la ligne 25, avant le endif :

Else
MsgBox(16,"Et bah non !","Impossible de lire la clé de registre"&@CRLF&"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SCardSvr1\Start")
Exit 1
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vins83
Membre affirmé


Nombre de messages : 106
Localisation : Hyeres (83)
Date d'inscription : 28/02/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-28, 10:07

Le probleme en fesant de cette maniere,mon programme ne peu continuer et c'est la que j'ai un probleme,c'est qu'il y a environ 75 registres des services différents et selon le XP utilisé,certain,n'existe pas,donc,il faut qu'il ne soit pas dans le tableau et je suis obligé de mettre quand les conditions sont réuni au moins ceu ci:

case $msg = $SCardSvritem
GUIctrlSetState ( $2 , $GUI_SHOW )
GUIctrlSetState ( $4 , $GUI_HIDE )
GUIctrlSetState ( $6 , $GUI_HIDE )

case $msg = $testblabla
GUIctrlSetState ( $4 , $GUI_SHOW )
GUIctrlSetState ( $2 , $GUI_HIDE )
GUIctrlSetState ( $6 , $GUI_HIDE )

comme dans l'exemple treeview.au3 ou treeview.exe
Si case $msg = $SCardSvritem n'est pas remplie,il faut que je passe directe à case $msg = $testblabla sans qu'il ni est d'erreur bien sur lol..

merci de votre aide

@+ Vins
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vier
Débutant
Débutant


Nombre de messages : 19
Date d'inscription : 08/03/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-28, 21:24

Met simplement au début du script :

Dim $SCardSvritem

Comme ca tu décalres ta variable et tu n'auras plus de problème !

Un conseil tu devaris utiliser un système proche de ce que j'ai fait dans CréateurTweaks, je pense que si tu utilise un fichier ini ou xml contenant ce qu tu dois tester, et en créant un système par des array. tu aurais un code plus simple et tu pourrais très facilemnt le modifier !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Vins83
Membre affirmé


Nombre de messages : 106
Localisation : Hyeres (83)
Date d'inscription : 28/02/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-29, 11:15

Merci beaucoup Vier,c'était tout bete et telement efficace..

Le script plus haut a été modifier pour ceux qui veulent voir..

@+ Vins
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ani
Modérateur
Modérateur


Nombre de messages : 563
Date d'inscription : 23/01/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-04-29, 19:08

alors là j'ai pas suivit on dit qui faut pas mettre les dim car le logciel arrive a interpretter le truc désiré et la un petit dim et c'est good ?

vais relire l'aide chapitre dim.redim ect

vins (peut etre que je me trompe encore) si tu rajoutre d'autre element indque les sur la ligne du dim

dim $var, $var1, $var2 ect

merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
sylvanie
Modérateur
Modérateur


Nombre de messages : 300
Date d'inscription : 10/03/2007

MessageSujet: Re: [RESOLU]Probleme avec case $msg   2007-05-01, 23:20

Bonjour tout le monde,
Comme l'a dit Vier, le fait de passer par DIM, permet de créer la variable, contrairement à la première version du script.
Du coups par d'incohérence sur l'éxistance. La variable est initialisée à "", et comme aucun $msg ne peut valoir cette valeur, ça passe.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: [RESOLU]Probleme avec case $msg   Aujourd'hui à 10:41

Revenir en haut Aller en bas
 
[RESOLU]Probleme avec case $msg
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Probleme avec Bing [resolu]
» probleme avec les cellules d'excel sur la mise en forme
» [RESOLU] probleme dans :.file Generale.pictureBOx.xml
» Probleme avec connection en version mobile.
» Probleme avec le script de formulaire

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
AutoIt Français :: AutoIt v3 :: Entraide-
Sauter vers: