Funktionreferenz


RegRead

Beschreibung anzeigen in

Liest einen Wert aus der Registry.

RegRead ( "keyname", "valuename" )

Parameter

keyname Der Registry-Schlüssel, der den auszulesenden Wert beinhaltet.
valuename Der Wert, der ausgelesen werden soll.

Rückgabewert

Erfolg: Den Inhalt des angegebenen Werts. @extended wird auf den Typ des jeweiligen Wertes gesetzt (siehe Constants.au3 bei $REG_...).
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 angegebene Wert kann nicht geöffnet werden
-2 = der Typ des Werts wird nicht unterstützt

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

AutoIt unterstützt Registry-Werte der Typen REG_BINARY, REG_SZ, REG_MULTI_SZ, REG_EXPAND_SZ, REG_QWORD und REG_DWORD.

Um mit dem (Standard)-Wert zu operieren, muss man "" (einen leeren String) als Wertname verwenden.

Wenn ein REG_BINARY gelesen wird, wird ein binärer Datentyp zurückgegeben. (in den vorherigen Versionen war es ein String mit den Zeichen in der hexadezimalen Schreibweise).

Wenn Werte des Typs REG_MULTI_SZ gelesen werden, werden diese mit @LF voneinander abgetrennt. Man sollte die Funktion StringSplit(..., @LF) verwenden, um die einzelnen Einträge zu erhalten.

Es ist möglich, Registries im Netzwerk zu bearbeiten. Dazu ist "\\Computername\Schlüsselname" zu verwenden. Um diese Funktion verwenden zu können, muss man die entsprechenden Zugriffsrechte besitzen.

Verwandte Funktionen

RegDelete, RegWrite, StringSplit

Beispiel

#include <MsgBoxConstants.au3>

Local $sFilePath = RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion", "ProgramFilesDir")
MsgBox($MB_SYSTEMMODAL, "Die Programmdateien sind gespeichert in:", $sFilePath)