Page 1 sur 1

[R] Problème avec variable

Posté : lun. 01 nov. 2010 18:45
par mano78170
Bonjour ! :)

Voici le problème :
J'attribut une variable avec un GUICtrlRead (sur un input avec style $ES_PASSWORD)

Je test si la variable est vide:
si elle est vide le script recommence

MAIS au moment ou je lis pour la 2eme fois la variable ELLE N'A PAS CHANGEE alors que j'ai modifier le texte !
► Afficher le texte

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 18:59
par alex1205
Voilà, moi, je dirai de rajouter Dim avant le GUICtrlRead($PasswordInput)
Peut-être que ça va marcher, sinon, donne nous le script entier !

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 19:09
par bloodwolff
► Afficher le texte
Enleve le while en bleu et place le où celui en rouge, tu n'as pas besoin de tous recréer les control si il existe déjà sa en crée un deuxième au même endroit ...
Essaie comme sa et dis ce que sa donne

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 19:10
par mano78170
J'essaye avec Dim

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 19:15
par mano78170
Ca marche pas avec dim
J'ai rajouter la boucle seulement a cause de ce problème pour mettre une MsgBox afin de vérifier la valeur de $Password

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 19:29
par bloodwolff
bloodwolff a écrit :
► Afficher le texte
Enleve le while en bleu et place le où celui en rouge, tu n'as pas besoin de tous recréer les control si il existe déjà sa en crée un deuxième au même endroit ...
Essaie comme sa et dis ce que sa donne
Tu as testé le dim et sa tu l'as testé ?

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 19:52
par mano78170
Ca marche pas non plus.... :(

Voici le code complet

Code : Tout sélectionner

#NoTrayIcon
#include <GUIConstants.au3>

$FirstUse = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MI Software\USB Protect\Parameters", "FirstUse")
If @error <> 0 Then
    MsgBox(16, "USB Protect - Première utilisation", "Erreur de lecture" & @CRLF & "Vérifier vos droits d'accès au registre")
    Exit (2)
EndIf

If $FirstUse = 0 Then
    Exit (1)
EndIf

$Path = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\MI Software\USB Protect\CurrentVersion", "Path")
If @error <> 0 Then
    MsgBox(16, "USB Protect - Première utilisation", "Erreur de lecture" & @CRLF & "Vérifier vos droits d'accès au registre")
    Exit (2)
EndIf


$Gui = GUICreate("Assistant première utilisation - USB Protect", 450, 300)
$EtapeLabel = GUICtrlCreateLabel("Bienvenue dans l'assistant première utilisation de USB Protect !", 10, 10, 430, 50)
GUICtrlSetFont($EtapeLabel, 15, 500)
$DescriptionLabel = GUICtrlCreateLabel("Cet assistant va vous guider dans les première étapes de configuration de USB Protect", 10, 80, 430, 35)
GUICtrlSetFont($DescriptionLabel, 10)
$Label = GUICtrlCreateLabel("Cet assistant est obligatoire car il permet à USB Protect d'initialiser ses paramètres et à vous de définir un mot de passe " & _
        "de sécurité (en cas de perte de la clé USB)", 10, 130, 430, 40)
$But_Suiv = GUICtrlCreateButton("Suivant", 220, 260, 100, 30)
GUICtrlSetFont($But_Suiv, 11, 500)
$But_Annul = GUICtrlCreateButton("Annuler", 340, 260, 100, 30)
GUICtrlSetFont($But_Annul, 11, 500)
GUISetState()


Do
    $msg = GUIGetMsg()
    If $msg = $GUI_EVENT_CLOSE Or $msg = $But_Annul Then Exit (3)
Until $msg = $But_Suiv

Ecran_1()

Func Ecran_1()
    GUICtrlSetPos($EtapeLabel, 10, 10, 430, 30)
    GUICtrlSetData($EtapeLabel, "Etape 1: Le mot de passe (26 caract. Max.)")
    GUICtrlSetPos($DescriptionLabel, 10, 60, 430, 45)
    GUICtrlSetData($DescriptionLabel, "Le mot de passe vous permet de changer les paramètres important de USB Protect et (si vous activer l'option)," & _
            "de déverrouiller votre ordinateur en absence de la clé USB")
    GUICtrlDelete($Label)

    GUICtrlCreateGroup("Mot de passe", 10, 125, 430, 115)
    $PasswordInput = GUICtrlCreateInput("", 20, 150, 410, 30, 0x0020)
    GUICtrlSetFont($PasswordInput, 18)

    GUICtrlCreateCheckbox("Activer le déverrouillage par mot de passe",20,190,410,30)

    Do
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Or $msg = $But_Annul Then Exit (3)
    Until $msg = $But_Suiv

    $Password = GUICtrlRead($PasswordInput)
    Global $TmpFile = TempFile($Path & "\Cache", 30)
    IniWrite($TmpFile, "FirstUse", "Password", $Password)
    Ecran_2()
EndFunc   ;==>Ecran_1

Func Ecran_2()
    GUICtrlSetPos($EtapeLabel, 10, 10, 430, 30)
    GUICtrlSetData($EtapeLabel, "Etape 2: ")
    GUICtrlSetPos($DescriptionLabel, 10, 60, 430, 45)
    GUICtrlSetData($DescriptionLabel, "Le mot de passe")
    GUICtrlDelete($Label)

    Do
        $msg = GUIGetMsg()
        If $msg = $GUI_EVENT_CLOSE Or $msg = $But_Annul Then Exit (3)
    Until $msg = $But_Suiv

EndFunc   ;==>Ecran_2

Func TempFile($s_DirectoryName = @TempDir, $i_RandomLength = 7)
    If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @TempDir
    If Not FileExists($s_DirectoryName) Then $s_DirectoryName = @ScriptDir
    If StringRight($s_DirectoryName, 1) <> "\" Then $s_DirectoryName = $s_DirectoryName & "\"
    Local $s_TempName
    Local $i_TMPTYPE = 0
    Do
        $s_TempName = ""
        While StringLen($s_TempName) < $i_RandomLength
            If $i_TMPTYPE Then
                $s_TempName = $s_TempName & Chr(Random(65, 90, 1))
                $i_TMPTYPE = Random(0, 1, 1)
            Else
                $s_TempName = $s_TempName & Chr(Random(48, 57, 1))
                $i_TMPTYPE = Random(0, 1, 1)
            EndIf
        WEnd
        $s_TempName = $s_DirectoryName & "{" & $s_TempName & "}"
    Until Not FileExists($s_TempName)

    Return $s_TempName
EndFunc   ;==>TempFile

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:03
par bloodwolff
Il me met un erreur de registre au départ même avec les droit d'Admin
Ps: Jai windows 7 integrale 64 bits si sa fais une différence

En enlevant la parti registre cela fonctionne et avec l'ajout d'une boucle while le code me donne bien ce que j'écris même après plusieurs essais
► Afficher le texte

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:08
par mano78170
Faut le compiler en x64 sinon le registre est inacessible

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:11
par bloodwolff
mano78170 a écrit :Faut le compiler en x64 sinon le registre est inacessible
Ok merci je prend en note.
Ps:Désolé pour les éditage normalement les membres ne sont pas connecté quand moi je le suis :S

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:14
par mano78170
AH :shock:
Il faut aussi créer les valeurs suivante sinon RegRead renvoi @error et le script plante

HKEY_LOCAL_MACHINE\SOFTWARE\MI Software\USB Protect\Parameters :FirstUse
Valeur DWORD données: 1

HKEY_LOCAL_MACHINE\SOFTWARE\MI Software\USB Protect\CurrentVersion: Path
Valeur Chaine (REG_SZ) Données: chemin vers un dossier contenant un dossier "Cache"
pour stocker le ini temporaire (ligne 84 du script)

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:30
par mano78170
YEEEEEEEEEEEEESSSSSS !!!! 8)
C'est résolu:
► Afficher le texte
C'était tout bête !!!!

Re: [..] Problème avec variable

Posté : lun. 01 nov. 2010 20:39
par Tlem
N'oubliez pas la balise [R] dans le titre de votre premier message si votre sujet est résolu.