Results 1 to 4 of 4

Thread: EnumRegValues Problem???

  1. #1

    Thread Starter
    Lively Member
    Join Date
    May 2001
    Location
    UK
    Posts
    83

    Angry EnumRegValues Problem???

    How come the following code enum's the values when running in vb, but when compiled to exe it dosen't wanna know!


    Any ideas?

    ' in form

    Const HKEY_CURRENT_CONFIG = &H80000005
    Const HKEY_LOCAL_MACHINE = &H80000002
    Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
    Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, phkResult As Long) As Long
    Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As Any) As Long
    Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, lpData As Byte, lpcbData As Long) As Long
    Private Sub Form_Paint()
    'KPD-Team 1999
    'URL: http://www.allapi.net/
    'E-Mail: [email protected]
    Dim hKey As Long, Cnt As Long, sSave As String
    'Clear the form
    Me.Cls
    Me.Print "RegEnumKeyEx"
    'Open a registry key
    RegOpenKey HKEY_LOCAL_MACHINE, "Enum", hKey
    Do
    'Create a buffer
    sSave = String(255, 0)
    'Enumerate the keys
    If RegEnumKeyEx(hKey, Cnt, sSave, 255, 0, vbNullString, ByVal 0&, ByVal 0&) <> 0 Then Exit Do
    'Print the result to the form
    Me.Print StripTerminator(sSave)
    Cnt = Cnt + 1
    Loop
    'Close the registry key
    RegCloseKey hKey
    Me.Print vbCrLf + "RegEnumValue:"
    'Open a new key
    RegOpenKey HKEY_CURRENT_CONFIG, "Display\Fonts", hKey
    Cnt = 0
    Do
    'Create a buffer
    sSave = String(255, 0)
    'enumerate the values
    If RegEnumValue(hKey, Cnt, sSave, 255, 0, ByVal 0&, ByVal 0&, ByVal 0&) <> 0 Then Exit Do
    'pritn the results to the form
    Me.Print StripTerminator(sSave)
    Cnt = Cnt + 1
    Loop
    'Close the registry
    RegCloseKey hKey
    End Sub
    'This function is used to stripoff all the unnecessary chr$(0)'s
    Private Function StripTerminator(sInput As String) As String
    Dim ZeroPos As Integer
    'Search the first chr$(0)
    ZeroPos = InStr(1, sInput, vbNullChar)
    If ZeroPos > 0 Then
    StripTerminator = Left$(sInput, ZeroPos - 1)
    Else
    StripTerminator = sInput
    End If
    End Function

  2. #2
    PowerPoster
    Join Date
    Aug 2000
    Location
    India
    Posts
    2,288
    I cannot help you pinpoint the code error, but I am uploading a file which works(class file). Use ListSubKey function to enumertae keys.
    Attached Files Attached Files

  3. #3
    Fanatic Member Patoooey's Avatar
    Join Date
    Aug 2001
    Location
    New Jersey, USA
    Posts
    774
    Just test the code you posted and it worked fine in the IDE and as a compiled app.

  4. #4

    Thread Starter
    Lively Member
    Join Date
    May 2001
    Location
    UK
    Posts
    83

    Wink

    Cheers amitabh for the class!

    Can't understand why it dosent work but hey thats VB

    Thanks for the reply's

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  



Click Here to Expand Forum to Full Width