SetRegView

Setzt die Registry-Ansicht für RegRead, RegWrite, RegDelete, RegDeleteKey und Loop Reg, so dass diese in einem 32-Bit-Skript auf die 64-Bit-Registry-Ansicht zugreifen können und umgekehrt.

SetRegView RegAnsicht

Parameter

RegAnsicht

Typ: Integer oder Zeichenkette

Geben Sie 32 an, um die Registry aus Sicht einer 32-Bit-Anwendung zu behandeln, oder 64, um die Registry aus Sicht einer 64-Bit-Anwendung zu behandeln.

Geben Sie das Wort Default an, um das normale Verhalten wiederherzustellen.

Rückgabewert

Typ: Zeichenkette

Diese Funktion gibt die vorherige Einstellung zurück; entweder 32, 64 oder Default.

Bemerkungen

Wenn SetRegView nicht verwendet wird, ist die Einstellung standardmäßig Default.

Diese Funktion ist nur in der 64-Bit-Version von Windows nützlich. In der 32-Bit-Version von Windows hat SetRegView keine Wirkung.

In einem 64-Bit-System werden 32-Bit-Anwendungen über das Windows-Subsystem namens WOW64 ausgeführt. Standardmäßig leitet das System bestimmte Registry-Schlüssel weiter, um Konflikte zu vermeiden. Zum Beispiel wird in einem 32-Bit-Skript HKLM\SOFTWARE\AutoHotkey zu HKLM\SOFTWARE\Wow6432Node\AutoHotkey weitergeleitet. SetRegView ermöglicht Registry-Funktionen in einem 32-Bit-Skript den Zugriff auf die 64-Bit-Registry-Ansicht und umgekehrt.

Die interne Variable A_RegView enthält die aktuelle Einstellung.

Jeder neue Thread (z.B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet zunächst die Standardeinstellung der Funktion. Diese Standardeinstellung kann geändert werden, indem die Funktion während der Startphase des Skripts verwendet wird.

RegRead, RegWrite, RegCreateKey, RegDelete, RegDeleteKey, Loop Reg

Beispiele

Zeigt, wie eine bestimmte Registry-Ansicht gesetzt werden kann und wie die Registry-Weiterleitung das Skript beeinflusst.

; Auf die Registry aus Sicht einer 32-Bit-Anwendung zugreifen.
SetRegView 32
RegWrite "REG_SZ", "HKLM\SOFTWARE\Test.ahk", "Wert", 123

; Auf die Registry aus Sicht einer 64-Bit-Anwendung zugreifen.
SetRegView 64
Wert := RegRead("HKLM\SOFTWARE\Wow6432Node\Test.ahk", "Wert")
RegDelete "HKLM\SOFTWARE\Wow6432Node\Test.ahk"

MsgBox "Gelesener Wert '" Wert '" via Wow6432Node."

; Standard-Registry-Ansicht wiederherstellen,
; je nachdem, ob das Skript 32-Bit oder 64-Bit ist.
SetRegView "Default"
;...

Zeigt, wie der EXE-Typ und das Betriebssystem, auf dem das Skript läuft, erkannt werden können.

if (A_PtrSize = 8)
    Skript_ist := "64-Bit"
else ; if (A_PtrSize = 4)
    Skript_ist := "32-Bit"

if (A_Is64bitOS)
    OS_ist := "64-Bit"
else
    OS_ist := "32-Bit mit nur einer einzigen Registry-Ansicht"

MsgBox "Dieses Skript ist " Skript_ist ", und das OS ist " OS_ist "."