Funktionreferenz


RegEnumVal

Beschreibung anzeigen in

Liest den Namen eines Wertes aus der Registry.

RegEnumVal ( "keyname", instance )

Parameter

keyname Der Registry-Schlüssel, in dem gelesen werden soll.
instance Die Instanz, die ermittelt werden soll (basierend auf 1).

Rückgabewert

Erfolg: Den angeforderten Wertnamen. In @EXTENDED wird der Typ der Wertes geschrieben.
Fehler: Setzt das @error Flag auf ungleich null.
@error: 1 = der angegebene Schlüssel kann nicht geöffnet werden
 2 = es ist nicht möglich auf den Hauptschlüssel zuzugreifen
 3 = es kann von extern (remote) nicht auf die Registry zugegriffen werden
-1 = der angefrage Wert kann nicht ermittelt werden (Instanzwert außerhalb des zulässigen Bereichs)

Bemerkungen

Ein Registry-Schlüssel muss mit "HKEY_LOCAL_MACHINE" ("HKLM"), "HKEY_USERS" ("HKU"), "HKEY_CURRENT_USER" ("HKCU"), "HKEY_CLASSES_ROOT" ("HKCR") oder "HKEY_CURRENT_CONFIG" ("HKCC") beginnen.

"HK" oder "HKEY" bedeutet "Handle (to a) KEY".

Falls bei einem 64-Bit Windows auf die speziellen Einträge des 64-Bit Systems zugegriffen werden soll, muss dem Begriff "HK..." das Suffix "64" angehängt werden (z. B. "HKLM64").

Registry-Zweige:
64 Bit: HKLM\SOFTWARE\…
32 Bit: HKLM\SOFTWARE\WOW6432Node\…

AutoIt-Skript: Ausführungs-Modus AutoIt-Skript: Angabe im Quellcode Registrierungs-Editor: Verwendeter Zweig
32 Bit HKLM\SOFTWARE\… HKLM\SOFTWARE\WOW6432Node\…
32 Bit HKLM64\SOFTWARE\… HKLM\SOFTWARE\…
32 Bit HKLM\SOFTWARE\WOW6432Node\… HKLM\SOFTWARE\WOW6432Node\…
64 Bit HKLM\SOFTWARE\… HKLM\SOFTWARE\…
64 Bit HKLM64\SOFTWARE\… HKLM\SOFTWARE\…
64 Bit HKLM\SOFTWARE\WOW6432Node\… HKLM\SOFTWARE\WOW6432Node\…

"HKLM64" ist also nur für 32-Bit-AutoIt-Skripte (x86) wichtig und auch nur dann, wenn von dort aus nicht in "WOW6432Node" geschrieben werden soll.

Details siehe https://docs.microsoft.com/de-de/troubleshoot/windows-client/deployment/view-system-registry-with-64-bit-windows

Verwandte Funktionen

RegDelete, RegEnumKey, RegWrite

Beispiel

#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $i, $sVar, $sWow64 = "", $sEnumVal = "Unter dem AutoIt3 Schlüssel." & @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 Unterstützung
    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 Beispiel", $sEnumVal)

EndFunc   ;==>Example