RegRead

Liest einen Wert aus der Registry.

Neue Syntax [v1.1.21+]

RegRead, AusgabeVar, KeyName , Wertname

Parameter

AusgabeVar

Name der Variable, in der der abgerufene Wert gespeichert werden soll. Falls der Wert nicht abgerufen werden kann, wird die Variable leer gemacht und ErrorLevel auf 1 gesetzt.

KeyName

Der vollständige Name des Registry-Keys.

Der Name muss entweder mit HKEY_LOCAL_MACHINE, HKEY_USERS, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT oder HKEY_CURRENT_CONFIG beginnen (oder jeweils die Abkürzung, wie z. B. HKLM). Um eine Remote-Registry anzusteuern, setzt man den Computernamen und einen Doppelpunkt (oder [in v1.1.21+] einen Schrägstrich) davor. Zum Beispiel: \\workstation01:HKEY_LOCAL_MACHINE

Wertname

Der Name des Wertes, der abgerufen werden soll. Fehlt dieser Parameter, wird der Standardwert von KeyName abgerufen - das ist der Wert, der in RegEdit als "(Standard)" angezeigt wird. Wenn es keinen Standardwert gibt (also wenn RegEdit "Wert nicht festgelegt" anzeigt), wird AusgabeVar leer gemacht und ErrorLevel auf 1 gesetzt.

Beispiele

; Beispiel: Ermittelt den Pfad des Programm-Ordners.

; Die nachfolgende Zeile stellt sicher, dass die 64-Bit-Version des Programm-Ordners zurückgegeben wird, wenn das Betriebssystem 64-Bit ist und das Skript nicht.
SetRegView 64  ; Benötigt [v1.1.08+]

RegRead, AusgabeVar, HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion, ProgramFilesDir
MsgBox, Programme sind in: %AusgabeVar%

; Ein anderer Weg, um den Pfad des Programm-Ordners zu ermitteln:
EnvGet AusgabeVar, % A_Is64bitOS ? "ProgramW6432" : "ProgramFiles"
MsgBox, Programme sind in: %AusgabeVar%

Alte Syntax

Veraltet: Diese Syntax ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die neue Syntax.

RegRead, AusgabeVar, Rootkey, Subkey , Wertname

Parameter

AusgabeVar

Name der Variable, in der der abgerufene Wert gespeichert werden soll. Falls der Wert nicht abgerufen werden kann, wird die Variable leer gemacht und ErrorLevel auf 1 gesetzt.

Rootkey

Entweder HKEY_LOCAL_MACHINE (oder HKLM), HKEY_USERS (oder HKU), HKEY_CURRENT_USER (oder HKCU), HKEY_CLASSES_ROOT (oder HKCR) oder HKEY_CURRENT_CONFIG (oder HKCC). Um eine Remote-Registry anzusteuern, setzt man den Computernamen und einen Doppelpunkt (oder [in v1.1.21+] einen Schrägstrich) davor. Zum Beispiel: \\workstation01:HKEY_LOCAL_MACHINE

Subkey

Der Name des Subkeys (z. B. Software\BeliebigeAnwendung).

Wertname

Der Name des Wertes, der abgerufen werden soll. Fehlt dieser Parameter, wird der Standardwert von Subkey abgerufen - das ist der Wert, der in RegEdit als "(Standard)" angezeigt wird. Wenn es keinen Standardwert gibt (also wenn RegEdit "Wert nicht festgelegt" anzeigt), wird AusgabeVar leer gemacht und ErrorLevel auf 1 gesetzt.

Beispiele

; Beispiel: Ermittelt den Pfad des Programm-Ordners.

; Die nachfolgende Zeile stellt sicher, dass die 64-Bit-Version des Programm-Ordners zurückgegeben wird, wenn das Betriebssystem 64-Bit ist und das Skript nicht.
SetRegView 64  ; Benötigt [v1.1.08+]

RegRead, AusgabeVar, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows\CurrentVersion, ProgramFilesDir
MsgBox, Programme sind in: %AusgabeVar%

; Ein anderer Weg, um den Pfad des Programm-Ordners zu ermitteln:
EnvGet AusgabeVar, % A_Is64bitOS ? "ProgramW6432" : "ProgramFiles"
MsgBox, Programme sind in: %AusgabeVar%

ErrorLevel

[v1.1.04+]: Dieser Befehl ist in der Lage, bei Misserfolg eine Ausnahme auszulösen. Weitere Informationen finden Sie unter Laufzeitfehler.

ErrorLevel wird bei Misserfolg auf 1 (z. B. nicht-existierender Key oder Wert) oder bei Erfolg auf 0 gesetzt.

A_LastError wird auf das Ergebnis der Systemfunktion GetLastError() gesetzt.

Bemerkungen

Zurzeit werden nur die folgenden Werttypen unterstützt: REG_SZ, REG_EXPAND_SZ, REG_MULTI_SZ, REG_DWORD und REG_BINARY.

REG_DWORD-Werte werden immer als positive Dezimalzahlen ausgedrückt.

Beim Lesen eines REG_BINARY-Keys ist das Ergebnis eine Zeichenkette mit hexadezimalen Zeichen. Zum Beispiel würde ein REG_BINARY-Wert von 01,a9,ff,77 als Zeichenkette 01A9FF77 gelesen werden.

Beim Lesen eines REG_MULTI_SZ-Keys endet jede Komponente mit einem Zeilenumbruchszeichen (`n). Gibt es keine Komponenten, wird AusgabeVar leer gemacht. In FileSelectFile finden Sie ein Beispiel, wie einzelne Komponenten aus AusgabeVar extrahiert werden können.

[v1.1.10.01+]: REG_BINARY-Werte größer als 64 KB können auch gelesen werden.

Mit der Registry-Schleife können mehrere Registry-Keys und -Werte abgerufen und bearbeitet werden.

In den Bemerkungen zur Registry-Schleife finden Sie Hinweise, wie man auf die Registry eines Remotecomputers zugreifen kann.

Mit SetRegView können Einträge von den 64-Bit-Bereichen der Registry in einem 32-Bit-Skript oder umgekehrt gelesen und geschrieben werden.

Siehe auch

RegDelete, RegWrite, Registry-Schleife, SetRegView, IniRead

Beispiele

; Das folgende Beispiel ermittelt den TYP eines Registry-Wertes (z. B. REG_SZ oder REG_DWORD).
MsgBox % RegKeyTyp("HKCU", "Environment", "TEMP")
return

RegKeyTyp(Rootkey, Subkey, Wertname)  ; Diese Funktion gibt den Typ des angegebenen Wertes zurück.
{
    Loop, %Rootkey%, %Subkey%
        if (A_LoopRegName = Wertname)
            return A_LoopRegType
    return "Fehler"
}