[R] Compter les valeurs dans une clé de registre.

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

[R] Compter les valeurs dans une clé de registre.

#1

Message par fred39 »

Bonjour,
Je voudrais réaliser un traitement pour chaque valeur d'une clé de registre.

j'utilise la fonction regenumval en m'inspirant de l'exemple de l'aide:

Code : Tout sélectionner

For $i = 1 to 100
$var = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\Autoit", $i)
if @error <> 0 Then ExitLoop
MsgBox(4096, "Value Name  #" & $i & " under in AutoIt3 key", $var)
next
 
Seulement, j'aimerais être sur de traiter chaque valeur.
Il peut y en avoir beaucoup plus de 100.
Comment puis-je les compter avant ma boucle?

Merci
Davyly
Niveau 3
Niveau 3
Messages : 31
Enregistré le : dim. 08 févr. 2009 23:25
Status : Hors ligne

Re: [..]Compter les valeurs dans une clé de registre.

#2

Message par Davyly »

Bonjour,

Soit en augmentant le nombre de la boucle. Exemple :

Code : Tout sélectionner

For $i = 1 to 9999
 
Soit en transformant tout simplement ton "For" en un "While". Exemple :

Code : Tout sélectionner

Dim $i = 1
While 1
    $var = RegEnumKey("HKEY_CLASSES_ROOT", $i)
    If @error <> 0 then ExitLoop
    $i += 1
WEnd
MsgBox(0, "Information", "Le nombre de sous clés est de : " & $i - 1)
 
Bon après midi.
Avatar du membre
fred39
Niveau 4
Niveau 4
Messages : 64
Enregistré le : lun. 05 mai 2008 10:03
Status : Hors ligne

Re: [R]Compter les valeurs dans une clé de registre.

#3

Message par fred39 »

C'est juste ce qu'il me fallait
while1

Merci Davyly.
GaRydelaMer
Niveau 7
Niveau 7
Messages : 450
Enregistré le : mer. 18 mars 2009 22:12
Localisation : Montpellier
Status : Hors ligne

Re: [R] Compter les valeurs dans une clé de registre.

#4

Message par GaRydelaMer »

Bonjour

une autre idée que j'utilise dans une fonction.

Elle recherche la liste driver ODBC dans le registre, filtre le résultat pour virer les doublons et me retourne un tableau. LA 1ere partie va t'interresser.

Code : Tout sélectionner

Func _ODBC_GetDrivers()
    Local $i = 0, $Drivers = "", $Value = ""
    While @Error = 0
        $i += 1
        $Value = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $i)
        If RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\ODBC Drivers", $Value) = "Installed" Then $Drivers &= $Value & "|"
    WEnd
    Local $a = StringSplit($Drivers, "|", 2)
    For $i = UBound($a) - 1 To 0 Step -1
        Switch $a[$i]
            Case "", "Driver da Microsoft para arquivos texto (*.txt; *.csv)", _
                    "Driver do Microsoft Access (*.mdb)", _
                    "Driver do Microsoft dBase (*.dbf)", _
                    "Driver do Microsoft Excel(*.xls)", _
                    "Driver do Microsoft Paradox (*.db )", _
                    "Driver para o Microsoft Visual FoxPro", _
                    "Microsoft Access Driver (*.mdb)", _
                    "Microsoft Access-Treiber (*.mdb)", _
                    "Microsoft dBase-Treiber (*.dbf)", _
                    "Microsoft Excel-Treiber (*.xls)", _
                    "Microsoft ODBC pour Oracle", _
                    "Microsoft Paradox-Treiber (*.db )", _
                    "Microsoft Text-Treiber (*.txt; *.csv)", _
                    "Microsoft Visual FoxPro-Treiber";, _
                _ArrayDelete($a, $i)
        EndSwitch
    Next
    _ArraySort($a)
    Return $a
EndFunc   ;==>_ODBC_GetDrivers
 
Répondre