Bonjour

A propos de la fonction RegEnumKeyEx
Citation Envoyé par MSDN
Return Values
If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a system error code. If there are no more subkeys available, the function returns ERROR_NO_MORE_ITEMS.

If the lpName buffer is too small to receive the name of the key, the function returns ERROR_MORE_DATA.
J'ai donc construit mon code de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
    i=0
    strTmp=string(255,0)
    lRet = ERROR_SUCCESS
    While lRet <> ERROR_NO_MORE_ITEMS
        lRet = RegEnumKeyEx(lKey, i, strTmp, 255, 0, 0, 0, 0)
        ReDim Preserve strKeyList(i)
        strKeyList(i) = strTmp
        i = i + 1
    Wend
Je me suis apperçu que la boucle While n'était jamais exécutée.
Après quelques heures de réflexion intense, je me suis dit que la seule possibilité était que ERROR_SUCCESS=ERROR_NO_MORE_ITEMS. Alors pour vérifier, j'ai ajouté cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
MsgBox ERROR_SUCCESS=ERROR_NO_MORE_ITEMS
Et j'ai obtenu Vrai !

D'où ma question, je mets quoi comme condition d'arrêt de ma boucle ?
J'ai bien essayé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
While lRet=ERROR_SUCCESS
mais alors le programme passe une fois de trop dans la boucle.

Cordialement,

Mathieu Driesbach.

PS : Je bosse avec VB6 et Windows NT4