[R] Lire une clé puis sa valeur

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

[R] Lire une clé puis sa valeur

#1

Message par Ks10 »

Bonjour à tous !

J'ai pour mission de lire une clé dans la base de registre puis sa valeur et son contenue et tous sa en listant dans une listview.

Exemple de ma base de registre :
HKEY_CURRENT_USER\Software\Skype

A l'intérieur il y a :
HKEY_CURRENT_USER\Software\Skype\utilisateur1
HKEY_CURRENT_USER\Software\Skype\utilisateur2
HKEY_CURRENT_USER\Software\Skype\utilisateur3
etc....

Dans :

HKEY_CURRENT_USER\Software\Skype\Utilisateur1, sa valeur est : mon.skype.test

J'aimerais lister ces deux informations dans un tableau :

Utilisateur | Son skype

Pour cela j'ai utiliser ce code :

Code : Tout sélectionner

For $i = 1 To 100

$test = Regenumval("HKEY_CURRENT_USER\Software\Skype", $i)
If @error <> 0 Then Exitloop
GuiCtrlCreateListViewItem($test, $list1)
Next
Ce code fonctionne mais me donne que les utilisateurs.

Si j'utilise ce code pour obtenir le reste :

Code : Tout sélectionner

For $i = 1 To 100

$test = Regenumval("HKEY_CURRENT_USER\Software\Skype", $i)
If @error <> 0 Then Exitloop

For $j = 1 To 100

   $test_suivant = Regenumval("HKEY_CURRENT_USER\Software\Skype" & $test, $j)
   If @error <> 0 Then Exitloop
   GuiCtrlCreateListViewItem($test & "|" & $test_suivant, $list1)
Next
 
Dans ce cas de figure plus rien ne s'affiche.
J'ai même essayer de faire deux boucles for différente c'est à dire aucun à l'intérieur de l'autre mais le résultat est pareil.

Mon raisonnement n'est pas bon ? Pourquoi ? Comment le corriger ?
Merci d'avance :)
Modifié en dernier par Ks10 le ven. 27 déc. 2013 06:08, modifié 1 fois.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Lire une clé puis sa valeur

#2

Message par jguinch »

Un truc comme ça ?
► Afficher le texte
Juste un truc bête : dans l'exemple de RegEnumVal, la boucle utilisée va de 1 à 100, c'est juste pour l'exemple.
Le mieux est de passer par un While 1 pour être sûr de lister toutes les valeurs (s'il y en a plus de 100 par ex).
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
Ks10
Niveau 6
Niveau 6
Messages : 282
Enregistré le : mer. 25 avr. 2012 20:38
Status : Hors ligne

Re: [..] Lire une clé puis sa valeur

#3

Message par Ks10 »

Merci, ton code est fonctionnel et oui c'est mieux une boucle while :)

j'apporte juste une petite correction parce que la il affiche une erreur par rapport à la syntaxe.

Code : Tout sélectionner

$i = 0
While 1
    $i += 1
    $value = Regenumval("HKEY_CURRENT_USER\Software\Skype", $i)
    If @error Then ExitLoop
   
    GuiCtrlCreateListViewItem($value & "|" & RegRead("HKEY_CURRENT_USER\Software\Skype\", $value), $list1 )
WEnd
Merci beaucoup :)
Répondre