Rubrique précédente: RegENumKey : Enumérer les sous-clés d'une clé de registreRubrique suivante: RegOpenKey : Ouvrir une clé


RegEnumVariable – Enumérer les variables

(Applicable à Windows)

La fonction RegENumVariable répertorie les variables de la clé de registre spécifiée.

Format de la fonction :

RegEnumVariable(hKey as Integer, index as Integer, name as String, strvalue as String, intvalue as Integer) as Integer
RegEnumVariable(hkey as integer, index as integer, dummy as string, name as string, bufsize as integer, buffer as void) as integer.
hKey

Identifie une clé ouverte ou une clé prédéfinie. Le paramètre hKey peut présenter l'une des valeurs prédéfinies suivantes disponibles sur toutes les plates-formes Windows :

HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
index

Identifie l'index de la variable à extraire. Utilisez zéro pour le premier appel de la fonction.

name

Identifie le paramètre de sortie qui doit contenir le nom de la variable demandée.

strvalue

Identifie le paramètre de sortie qui doit contenir la valeur de chaîne de la variable demandée.

intvalue

Identifie le paramètre de sortie qui doit contenir la valeur Integer de la variable demandée.

factice

Reserved.

bufsize

Taille du tampon de réception en caractères si le tampon est de type chaîne. Dans le cas contraire, le nombre d'octets est spécifié. Il doit s'agir d'une variable. Après un renvoi réussi, il contient le nombre d'octets extraits.

mémoire tampon

Tampon destiné à recevoir la valeur de la variable extraite.

Une fois qu'elle a réussi, la première variante de la fonction renvoie l'une des valeurs suivantes :

REG_NODATA

Valeur 0 ; une variable est introuvable. Ceci indique que le dernier index de l'énumération a été atteint ou que le descripteur n'est pas valide.

REG_INTEGER

Valeur 1 ; une variable de type entier a été trouvée ; la valeur est stockée dans la variable intvalue.

REG_STRING

Valeur 2 ; une variable de type chaîne a été trouvée ; la valeur est stockée dans la variable strvalue.

REG_UNSUPPORTED

Valeur 3 : un type de variable non pris en charge a été trouvé ; la valeur est nulle.

La seconde variante de la fonction renvoie une valeur en notation Microsoft :

REG_NONE

Valeur 0

REG_SZ

Valeur 1

REG_EXPAND_SZ

Valeur 2

REG_BINARY

Valeur 3

REG_DWORD

Valeur 4

REG_DWORD_LITTLE_ENDIAN

Valeur 4

REG_DWORD_BIG_ENDIAN

Valeur 5

REG_LINK

Valeur 6

REG_MULTI_SZ

Valeur 7

Exemple :

Dim value as string
Dim hkey1 as integer
Dim name, str, dummy as string
Dim i, i1, rtr, int as integer
Dim bBuf[100] as Byte
Dim cBuf[100] as char

ClrScr()

hkey1 = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\CA")
if hkey1 = 0 then
	Print("Echec de RegOpenKey.")
	exit
endif

i = 0
while
	RegEnumKey(hkey1, i, str)
	Print(Str(i) + " - " + str)
	
RegCloseKey(hkey1)

Print " "

hkey1 = RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\CA\pour test uniquement")
if hkey1 = 0 then
	Print("Echec de RegOpenKey.")
	exit
endif
for i = 0 to 1
	rtr = RegEnumVariable(hKey1, i, name, str, i1)
	if (REG_INTEGER = rtr) then
		Print (Str(rtr) + ": " + Str(i) + " - " + name + " = " + Str(i1))
	else
		if (REG_STRING = rtr) then
			Print (Str(rtr) + ": " + Str(i) + " - " + name + " = " + str)
		else
			Print (Str(rtr) + ": " + "type inconnu");
		endif
	endif
next i
i1 = 100
str = ""
rtr = RegEnumVariable(hKey1, 2, name, dummy, i1, bBuf))
for i = 0 to i1 - 1
	str = str + Str(bBuf[i])
next i
Print (Str(rtr) + ": " + "2 - " + name + "(" + Str(i1) + ") = " + str)