Bonjour,
je viens de me lancer pour la première fois dans les API d'accès au
Registre. Jusqu'à maintenant, je n'ai eu aucun problème pour lire et
écrire des clés. Mais voilà que la fonction RegEnumKeyEx me cause
quelques ennuis... J'utilise le morceau de code suivant pour parcourir
une clé de mon application :
Dim Resp, Index, i, lngBuff As Long
Dim strSubKeyFound, strBuff As String
Dim lngType As FILETIME
i = 0&
strSubKeyFound = Space(255)
strBuff = Space(255)
lngBuff = Len(strSubKeyFound)
lngType.dwHighDateTime = Len(strSubKeyFound)
lngType.dwLowDateTime = Len(strSubKeyFound)
Resp = Len(strSubKeyFound)
'
RegOpenKeyEx HKEY_CURRENT_USER, "SOFTWARE\GestImmo\Users",0,
KEY_ALL_ACCESS, Resp Do While Index <> ERROR_NO_MORE_ITEMS
Index = RegEnumKeyEx(ByVal Resp, ByVal i, ByVal strSubKeyFound,
lngBuff, 0, vbNullString, _
0, lngType)
If Index <> ERROR_SUCCESS Or strSubKeyFound = Space(255)
Then Exit Do
If Index = ERROR_SUCCESS And strSubKeyFound
<> Space(255) Then
'
' Mon code
'
End If
Loop
Le problème, c'est que normalement, la variable strSubKeyFound devrait
contenir le nom de la sous-clé trouvée. Or, elle est toujours vide...
Comment cela est-il possible ?...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
Bonjour/soir,
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour cette opération est : KEY_ENUMERATE_SUB_KEYS Je ne vois pas non plus d'incrémentation de i. La fiche suivante de la KB montre comment faire: http://support.microsoft.com/default.aspx?scid&7908
"Jacques" a écrit dans le message de news:%dOib.5532$
Bonjour, je viens de me lancer pour la première fois dans les API d'accès au Registre. Jusqu'à maintenant, je n'ai eu aucun problème pour lire et écrire des clés. Mais voilà que la fonction RegEnumKeyEx me cause quelques ennuis... J'utilise le morceau de code suivant pour parcourir une clé de mon application :
Dim Resp, Index, i, lngBuff As Long Dim strSubKeyFound, strBuff As String Dim lngType As FILETIME i = 0& strSubKeyFound = Space(255) strBuff = Space(255) lngBuff = Len(strSubKeyFound) lngType.dwHighDateTime = Len(strSubKeyFound) lngType.dwLowDateTime = Len(strSubKeyFound) Resp = Len(strSubKeyFound) ' RegOpenKeyEx HKEY_CURRENT_USER, "SOFTWAREGestImmoUsers",0, KEY_ALL_ACCESS, Resp Do While Index <> ERROR_NO_MORE_ITEMS Index = RegEnumKeyEx(ByVal Resp, ByVal i, ByVal strSubKeyFound, lngBuff, 0, vbNullString, _ 0, lngType) If Index <> ERROR_SUCCESS Or strSubKeyFound > Space(255) Then Exit Do If Index = ERROR_SUCCESS And strSubKeyFound <> Space(255) Then ' ' Mon code ' End If Loop
Le problème, c'est que normalement, la variable strSubKeyFound devrait contenir le nom de la sous-clé trouvée. Or, elle est toujours vide... Comment cela est-il possible ?...
Merci de votre aide
Jacques
Bonjour/soir,
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour
cette opération est : KEY_ENUMERATE_SUB_KEYS
Je ne vois pas non plus d'incrémentation de i.
La fiche suivante de la KB montre comment faire:
http://support.microsoft.com/default.aspx?scid&7908
"Jacques" <lordjf@tele2.fr> a écrit dans le message de
news:%dOib.5532$d1.2955@nntpserver.swip.net
Bonjour,
je viens de me lancer pour la première fois dans les API d'accès au
Registre. Jusqu'à maintenant, je n'ai eu aucun problème pour lire et
écrire des clés. Mais voilà que la fonction RegEnumKeyEx me cause
quelques ennuis... J'utilise le morceau de code suivant pour parcourir
une clé de mon application :
Dim Resp, Index, i, lngBuff As Long
Dim strSubKeyFound, strBuff As String
Dim lngType As FILETIME
i = 0&
strSubKeyFound = Space(255)
strBuff = Space(255)
lngBuff = Len(strSubKeyFound)
lngType.dwHighDateTime = Len(strSubKeyFound)
lngType.dwLowDateTime = Len(strSubKeyFound)
Resp = Len(strSubKeyFound)
'
RegOpenKeyEx HKEY_CURRENT_USER, "SOFTWAREGestImmoUsers",0,
KEY_ALL_ACCESS, Resp Do While Index <> ERROR_NO_MORE_ITEMS
Index = RegEnumKeyEx(ByVal Resp, ByVal i, ByVal strSubKeyFound,
lngBuff, 0, vbNullString, _
0, lngType)
If Index <> ERROR_SUCCESS Or strSubKeyFound > Space(255) Then Exit Do
If Index = ERROR_SUCCESS And strSubKeyFound
<> Space(255) Then
'
' Mon code
'
End If
Loop
Le problème, c'est que normalement, la variable strSubKeyFound devrait
contenir le nom de la sous-clé trouvée. Or, elle est toujours vide...
Comment cela est-il possible ?...
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour cette opération est : KEY_ENUMERATE_SUB_KEYS Je ne vois pas non plus d'incrémentation de i. La fiche suivante de la KB montre comment faire: http://support.microsoft.com/default.aspx?scid&7908
"Jacques" a écrit dans le message de news:%dOib.5532$
Bonjour, je viens de me lancer pour la première fois dans les API d'accès au Registre. Jusqu'à maintenant, je n'ai eu aucun problème pour lire et écrire des clés. Mais voilà que la fonction RegEnumKeyEx me cause quelques ennuis... J'utilise le morceau de code suivant pour parcourir une clé de mon application :
Dim Resp, Index, i, lngBuff As Long Dim strSubKeyFound, strBuff As String Dim lngType As FILETIME i = 0& strSubKeyFound = Space(255) strBuff = Space(255) lngBuff = Len(strSubKeyFound) lngType.dwHighDateTime = Len(strSubKeyFound) lngType.dwLowDateTime = Len(strSubKeyFound) Resp = Len(strSubKeyFound) ' RegOpenKeyEx HKEY_CURRENT_USER, "SOFTWAREGestImmoUsers",0, KEY_ALL_ACCESS, Resp Do While Index <> ERROR_NO_MORE_ITEMS Index = RegEnumKeyEx(ByVal Resp, ByVal i, ByVal strSubKeyFound, lngBuff, 0, vbNullString, _ 0, lngType) If Index <> ERROR_SUCCESS Or strSubKeyFound > Space(255) Then Exit Do If Index = ERROR_SUCCESS And strSubKeyFound <> Space(255) Then ' ' Mon code ' End If Loop
Le problème, c'est que normalement, la variable strSubKeyFound devrait contenir le nom de la sous-clé trouvée. Or, elle est toujours vide... Comment cela est-il possible ?...
Merci de votre aide
Jacques
Jacques
OK. Merci pour ces précisions. A +, Jacques
Bonjour/soir,
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour cette opération est : KEY_ENUMERATE_SUB_KEYS Je ne vois pas non plus d'incrémentation de i. La fiche suivante de la KB montre comment faire: http://support.microsoft.com/default.aspx?scid&7908
OK. Merci pour ces précisions.
A +,
Jacques
Bonjour/soir,
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour
cette opération est : KEY_ENUMERATE_SUB_KEYS
Je ne vois pas non plus d'incrémentation de i.
La fiche suivante de la KB montre comment faire:
http://support.microsoft.com/default.aspx?scid&7908
si ce n'est pas nécessaire, évite le KEY_ALL_ACCESS. Le droit requis pour cette opération est : KEY_ENUMERATE_SUB_KEYS Je ne vois pas non plus d'incrémentation de i. La fiche suivante de la KB montre comment faire: http://support.microsoft.com/default.aspx?scid&7908