UDF > WinAPIEx > Registry >


_WinAPI_RegEnumValue

Énumère les valeurs de la clé de registre ouverte spécifiée

#include <WinAPIReg.au3>
_WinAPI_RegEnumValue ( $hKey, $iIndex )

Paramètres

$hKey Handle de la clé de registre ouverte. La clé doit avoir été ouverte avec le droit d'accès $KEY_QUERY_VALUE.
Ce handle est retourné par la fonction _WinAPI_RegCreateKey() ou _WinAPI_RegOpenKey(). Il peut également être l'une des clés prédéfinies suivantes:
$HKEY_CLASSES_ROOT
$HKEY_CURRENT_CONFIG
$HKEY_CURRENT_USER
$HKEY_LOCAL_MACHINE
$HKEY_PERFORMANCE_DATA
$HKEY_USERS
$iIndex L'index de la valeur à récupérer. Ce paramètre doit être nul pour le premier appel à la fonction _WinAPI_RegEnumValue() et ensuite être incrémenté pour les appels suivants.

Valeur de retour

Succès: Retourne la chaîne qui contient le nom de la valeur, @extended contiendra le code indiquant le type de données ($REG_*) stockées dans la valeur indiquée.
Échec: Définit @error <> 0, @extended peut contenir le code d'erreur du système.

Remarques

Pour énumérer des valeurs, une application doit d'abord appeler la fonction _WinAPI_RegEnumValue() avec le paramètre $iIndex réglé sur zéro. L'application doit ensuite incrémenter $iIndex et appeler la fonction _WinAPI_RegEnumValue() jusqu'à ce qu'il n'y ait plus de valeurs (jusqu'à ce que @extended soit égal à ERROR_NO_MORE_ITEMS (259)).

L'application peut également définir $iIndex à l'index de la dernière valeur lors du premier appel à la fonction et décrémenter l'index jusqu'à ce que la valeur d'index 0 soit énumérée. Pour récupérer l'index de la dernière valeur, utilisez la fonction _WinAPI_RegQueryInfoKey().

Pendant l'utilisation de _WinAPI_RegEnumValue() , une application ne doit pas appeler les fonctions de registre qui pourrait changer la clé recherchée.

En relation

_WinAPI_RegCreateKey, _WinAPI_RegOpenKey, _WinAPI_RegQueryInfoKey

Voir aussi

Consultez RegEnumValue dans la librairie MSDN.

Exemple

#include <APIRegConstants.au3>
#include <Array.au3>
#include <MsgBoxConstants.au3>
#include <WinAPIError.au3>
#include <WinAPIReg.au3>

Local $hKey = _WinAPI_RegOpenKey($HKEY_CURRENT_USER, 'Software\Microsoft\Windows\CurrentVersion\Run', $KEY_READ)
If @error Then
    MsgBox(BitOR($MB_ICONERROR, $MB_SYSTEMMODAL), @extended, _WinAPI_GetErrorMessage(@extended))
    Exit
EndIf
Local $iCount = _WinAPI_RegQueryInfoKey($hKey)
Local $aKey[$iCount[2]]
For $i = 0 To UBound($aKey) - 1
    $aKey[$i] = _WinAPI_RegEnumValue($hKey, $i)
Next

_WinAPI_RegCloseKey($hKey)

_ArrayDisplay($aKey, '_WinAPI_RegEnumValue')