Énumère les valeurs de la clé de registre ouverte spécifiée
#include <WinAPIReg.au3>
_WinAPI_RegEnumValue ( $hKey, $iIndex )
$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. |
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. |
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.
_WinAPI_RegCreateKey, _WinAPI_RegOpenKey, _WinAPI_RegQueryInfoKey
Consultez RegEnumValue dans la librairie MSDN.
#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')