Reads the name of a value according to its instance.
RegEnumVal ( "keyname", instance )
keyname | The registry key to read. |
instance | The 1-based value instance to retrieve |
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) |
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.
RegDelete, RegEnumKey, RegWrite
#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