Funktionreferenz


RegEnumKey

Beschreibung anzeigen in

Liest den Namen eines Unterschlüssels aus der Registry aus.

RegEnumKey ( "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 Unterschlüsselnamen.
Fehler: "" (leerer String) und 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 angefragte Unterschlüssel konnte 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, RegEnumVal, RegWrite

Beispiel

#include <MsgBoxConstants.au3>

Example()

Func Example()
    Local $sSubKey = "", $sEnumKey = "unter HKLM\SOFTWARE:" & @CRLF & @CRLF

    ; Schleife von 1 bis 10, zeigt die Registryschlüssel bei dem bestimmten Instanzwert an.
    For $i = 1 To 10
        $sSubKey = RegEnumKey("HKEY_LOCAL_MACHINE\SOFTWARE", $i)
        If @error Then ExitLoop
        $sEnumKey &= "#" & $i & @TAB & $sSubKey & @CRLF
    Next

    MsgBox($MB_SYSTEMMODAL, "RegEnumKey Beispiel", $sEnumKey)
EndFunc   ;==>Example