# Function Reference

# RegRead

Reads a value from the registry.

RegRead ( "keyname", "valuename" )

## Parameters

keyname | The registry key to read.
valuename | The value to read.

## Return Value

Success: | the requested registry value. @extended is set to the type of the value $REG_... . These types are defined in the "Constants.au3" include file.
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 open requested value -2 = value type not supported

## 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 read a value specific to the 64-bit environment you have to suffix the HK... with 64 i.e. HKLM64.
AutoIt supports registry keys of type REG_BINARY, REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_QWORD, and REG_DWORD.
To access the (Default) value use "" (an empty string) for the valuename.
When reading a REG_BINARY key the result is a binary datatype (in previous versions it was a string of hex characters).
When reading a REG_MULTI_SZ key the multiple entries are separated by @LF - use with StringSplit(..., @LF) to get each entry.
It is possible to access remote registries by using a keyname in the form "\\computername\keyname". To use this feature you must have the correct access rights.

## Related

RegDelete, RegWrite, StringSplit

## Example

    #include <MsgBoxConstants.au3>

    Local $sFilePath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
    MsgBox($MB_SYSTEMMODAL, "", "Program files are located at: " & $sFilePath)