OVH Cloud OVH Cloud

RegEnumKeyEx

4 réponses
Avatar
jhon
bonjour.
Petit souci avec la fonction RegEnumKeyEx :
Je r=E9cup=E8re bien le nom de mes cl=E9es, mais je ne sais pas=20
comment enlever les caract=E8res null qui suivent ce nom.
D'avance merci.

Ex :
dim keynam as string * 255
...
retVal =3D RegEnumKeyEx(hKey, p_index, keyname, Len
(keyname), 0&, vbNullString, 0&, ft)

Si ma cl=E9 se nomme "CLE", je r=E9cup=E8re dans=20
keyName "CLE ... "

4 réponses

Avatar
Vincent Guichard
jhon a écrit :
bonjour.
Petit souci avec la fonction RegEnumKeyEx :
Je récupère bien le nom de mes clées, mais je ne sais pas
comment enlever les caractères null qui suivent ce nom.
D'avance merci.

Ex :
dim keynam as string * 255
....
retVal = RegEnumKeyEx(hKey, p_index, keyname, Len
(keyname), 0&, vbNullString, 0&, ft)

Si ma clé se nomme "CLE", je récupère dans
keyName "CLE ... "




Non Testé:

dim keyname as string * 255
dim keylen as integer
keylen = 255
....
retval = RegEnumKeyEx(hKey, p_index, keyname, keylen, _
0&, vbNullString, 0&, ft)
if retval=0& then
keyname = Left(keyname, keylen)
...
end if

Vincent GUICHARD
Avatar
jhon
ok j'ai trouvé :

keyname = Space(255)
keyLength = 255
...
retVal = RegEnumKeyEx(hKey, p_index, keyname, keyLength,
0&, vbNullString, 0&, ft)
...
p_resultKey = Left(keyname, keyLength)

-----Message d'origine-----
bonjour.
Petit souci avec la fonction RegEnumKeyEx :
Je récupère bien le nom de mes clées, mais je ne sais


pas
comment enlever les caractères null qui suivent ce nom.
D'avance merci.

Ex :
dim keynam as string * 255
....
retVal = RegEnumKeyEx(hKey, p_index, keyname, Len
(keyname), 0&, vbNullString, 0&, ft)

Si ma clé se nomme "CLE", je récupère dans
keyName "CLE ... "
.



Avatar
François Picalausa
Bonjour/soir,

Essaye ceci:
dim keyname As String, keyNameLenght As Long

...
keyNameLenght = 255
keyname = String$(keyNameLenght, vbNullChar)
retVal = RegEnumKeyEx(hKey, p_index, keyname, keyNameLenght , 0&,
vbNullString, 0&, ft)
If retVal = 0 Then
keyname = Left$(keyname, keyNameLenght)
End If
'Normalement,il faut gérer aussi le retVal = 234, il me semble, pour un
buffer trop petit

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"jhon" a écrit dans le message de
news:146d601c41be8$e970e870$
bonjour.
Petit souci avec la fonction RegEnumKeyEx :
Je récupère bien le nom de mes clées, mais je ne sais pas
comment enlever les caractères null qui suivent ce nom.
D'avance merci.

Ex :
dim keynam as string * 255
...
retVal = RegEnumKeyEx(hKey, p_index, keyname, Len
(keyname), 0&, vbNullString, 0&, ft)

Si ma clé se nomme "CLE", je récupère dans
keyName "CLE ... "


Avatar
François Picalausa
Bonjour/soir,

"Vincent Guichard" a écrit dans le message
de news:c4uiou$shf$
Non Testé:


Et ne fonctionne pas :-(

En effet, quand tu fait:
dim keyname as string * 255
...
keyname = Left(keyname, keylen)



Tu affecte une valeur plus courte que 255 à une string de taille fixe 255.
La chaine garde donc sa taille fixe...
Au mieux, cela change les null chars et espaces...

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com