VB: lire valeur clé dans registre

Fermé
edgar - 23 nov. 2001 à 15:19
zmat Messages postés 25 Date d'inscription mercredi 20 juin 2001 Statut Membre Dernière intervention 8 janvier 2002 - 25 nov. 2001 à 22:03
Bonjour, je souhaiterais votre aide concernant la macro plus bas qui me permet avec VB5 de récupérer la donnée contenue dans la valeur d'une clé. J'utilise des api windows. Tout a l'air de marcher mis à part la taille du buffer dans la fonction RegQueryValueEx. Lorsqu'on place un espion sur ce champs, on s'aperçoit qu'il est tout le temps nul. Avez-vous une idée svp c'est très important.
Merci.
Edgar


Public Function read_a_value() As Variant
resultat = 0 'on suppose que tout marchera bien pour l'ouverture de la clé

'on ouvre la clé (en faisant comme si on la créait),
'et on obtient ainsi un identificateur stocké dans Ident
'qui nous permettra d'accéder à la clé
resultat = RegCreateKey(HKEY_CURRENT_USER, "TEMP", Ident)

If resultat <> 0 Then 's'il y'a eu une erreur à l'ouverture de la clé
Exit Function 'sortir
End If

'Détermine la taille de la donnée de la valeur à lire
resultat = RegQueryValueEx(Ident, "TEMP", 0&, 1, 0&, TailleBuffer)

If TailleBuffer < 2 Then 'c'est à dire qu'il n'y a que le caractère null (ou alors rien du tout)
'Pas de donnée à lire
valeur = "[Vide]"
Exit Function
End If

'Alloue à "Donnee" la taille nécessaire pour stocker la donnée de la valeur
Donnee = String(TailleBuffer + 1, " ") 'Nombre de caractères plus un pour le caractère null qui est mis à la fin

'Trouve la donnée de la valeur
resultat = RegQueryValueEx(Ident, "TEMP", 0&, 1, ByVal Donnee, TailleBuffer)

'Retire le caractère null final
Donnee = Left(Donnee, TailleBuffer - 1)
read_a_value = Donnee

End Function
A voir également:

2 réponses

zmat Messages postés 25 Date d'inscription mercredi 20 juin 2001 Statut Membre Dernière intervention 8 janvier 2002
25 nov. 2001 à 22:03
Va sur www.vbfrance.com tu y trouveras des exemples de code permettant d'accéder pleinement à la base de registre.

@+
0
perso je n'ai jamais réussi à faire marcher cette fonction
pour récup une valeur j'employais les fonction getstring (ou getdword, je sais plus si ca existe ca)
-1