devxlogo

EnumRegistryKeys – Retrieve all the subkeys of a Registry key

EnumRegistryKeys – Retrieve all the subkeys of a Registry key

Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" _    (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, _    ByVal samDesired As Long, phkResult As Long) As LongPrivate Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As _    LongPrivate Declare Function RegEnumKey Lib "advapi32.dll" Alias "RegEnumKeyA" _    (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, _    ByVal cbName As Long) As LongConst KEY_READ = &H20019  ' ((READ_CONTROL Or KEY_QUERY_VALUE Or                           ' KEY_ENUMERATE_SUB_KEYS Or KEY_NOTIFY) And (Not                           ' SYNCHRONIZE))' Enumerate registry keys under a given key'' returns a collection of stringsFunction EnumRegistryKeys(ByVal hKey As Long, ByVal KeyName As String) As _    Collection    Dim handle As Long    Dim length As Long    Dim index As Long    Dim subkeyName As String        ' initialize the result collection    Set EnumRegistryKeys = New Collection        ' Open the key, exit if not found    If Len(KeyName) Then        If RegOpenKeyEx(hKey, KeyName, 0, KEY_READ, handle) Then Exit Function        ' in all case the subsequent functions use hKey        hKey = handle    End If        Do        ' this is the max length for a key name        length = 260        subkeyName = Space$(length)        ' get the N-th key, exit the loop if not found        If RegEnumKey(hKey, index, subkeyName, length) Then Exit Do                ' add to the result collection        subkeyName = Left$(subkeyName, InStr(subkeyName, vbNullChar) - 1)        EnumRegistryKeys.Add subkeyName, subkeyName        ' prepare to query for next key        index = index + 1    Loop       ' Close the key, if it was actually opened    If handle Then RegCloseKey handle        End Function

See also  Professionalism Starts in Your Inbox: Keys to Presenting Your Best Self in Email
devxblackblue

About Our Editorial Process

At DevX, we’re dedicated to tech entrepreneurship. Our team closely follows industry shifts, new products, AI breakthroughs, technology trends, and funding announcements. Articles undergo thorough editing to ensure accuracy and clarity, reflecting DevX’s style and supporting entrepreneurs in the tech sphere.

See our full editorial policy.

About Our Journalist