SetRegView [v1.1.08+]

Setzt die Registry-Ansicht für RegRead, RegWrite, RegDelete und Registry-Schleifen.

SetRegView, RegAnsicht

Parameter

RegAnsicht

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

Mit dem Wort Default wird das normale Verhalten wiederhergestellt.

Allgemeine Bemerkungen

Dieser Befehl 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-Betriebssystem werden 32-Bit-Anwendungen über das Untersystem von Windows namens WOW64 ausgeführt. Standardmäßig leitet das System bestimmte Registry-Keys weiter, um Konflikte zu vermeiden. Zum Beispiel wird in einem 32-Bit-Skript HKLM\SOFTWARE\AutoHotkey nach HKLM\SOFTWARE\Wow6432Node\AutoHotkey weitergeleitet. SetRegView bewirkt, dass Registry-Befehle in einem 32-Bit-Skript auf die 64-Bit-Registry-Ansicht zugreifen können und umgekehrt.

Die interne Variable A_RegView enthält die aktuelle Einstellung. Jeder neu gestartete Thread (z. B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet zu Beginn die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.

Siehe auch

RegRead, RegWrite, RegDelete, Registry-Schleife

Beispiele

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

; Greift auf die Registrierung zu, wie es eine 32-Bit-Anwendung tun würde.
SetRegView 32
RegWrite REG_SZ, HKLM, SOFTWARE\Test.ahk, Wert, 123

; Greift auf die Registrierung zu, wie es eine 64-Bit-Anwendung tun würde.
SetRegView 64
RegRead Wert, HKLM, SOFTWARE\Wow6432Node\Test.ahk, Wert
RegDelete HKLM, SOFTWARE\Wow6432Node\Test.ahk

MsgBox Gelesener Wert '%Wert%' via Wow6432Node.

; Stellt die Standard-Registrierungsansicht wieder her, je
; nachdem, ob das Skript im 32-Bit- oder 64-Bit-Format ist.
SetRegView Default
;...

#2: Zeigt, wie der Typ der EXE und des Betriebssystems, auf dem das Skript läuft, erkannt werden kann.

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%.