# Function Reference

# RegEnumVal

Reads the name of a value according to its instance.

RegEnumVal ( "keyname", instance )

## Parameters

keyname | The registry key to read.
instance | The 1-based value instance to retrieve

## Return Value

Success: | the requested registry value. @extended is set to the type of the value.
Failure: | sets the @error flag to non-zero.
@error: | 1 = unable to open requested key 2 = unable to open requested main key 3 = unable to remote connect to the registry -1 = unable to retrieve requested value name (value instance out of range)

## Remarks

A registry key must start with "HKEY_LOCAL_MACHINE" ("HKLM") or "HKEY_USERS" ("HKU") or "HKEY_CURRENT_USER" ("HKCU") or "HKEY_CLASSES_ROOT" ("HKCR") or "HKEY_CURRENT_CONFIG" ("HKCC").
When running on 64-bit Windows if you want to enum a value specific to the 64-bit environment you have to suffix the HK... with 64 i.e. HKLM64.

## Related

RegDelete, RegEnumKey, RegWrite

## Example

    #include <MsgBoxConstants.au3>

    Example()

    Func Example()
        Local $i, $sVar, $sWow64 = "", $sEnumVal = "Under AutoIt3 key." & @CRLF & @CRLF
        Local $aRegValueType[12] = ["REG_NONE", "REG_SZ", "REG_EXPAND_SZ", "REG_BINARY", _
                "REG_DWORD_LITTLE_ENDIAN", "REG_DWORD_BIG_ENDIAN", "REG_LINK", _
                "REG_MULTI_SZ", "REG_RESOURCE_LIST", "REG_FULL_RESOURCE_DESCRIPTOR", _
                "REG_RESOURCE_REQUIREMENTS_LIST", "REG_QWORD_LITTLE_ENDIAN"]

        ; X64 running support
        If @AutoItX64 Then $sWow64 = "\Wow6432Node"

        For $i = 1 To 100
            $sVar = RegEnumVal("HKEY_LOCAL_MACHINE\SOFTWARE" & $sWow64 & "\AutoIt v3\AutoIt", $i)
            If @error <> 0 Then ExitLoop
            $sEnumVal &= "# " & $i & ":" & StringLeft($aRegValueType[@extended] & "                         ", 31) & $sVar & @CRLF
        Next

        MsgBox($MB_SYSTEMMODAL, "RegEnumVal example", $sEnumVal)

    EndFunc   ;==>Example