Setzt die Registry-Ansicht für RegRead, RegWrite, RegDelete und Registry-Schleifen, so dass diese in einem 32-Bit-Skript auf die 64-Bit-Registry-Ansicht zugreifen können und umgekehrt.
SetRegView, RegAnsicht
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.
Wenn SetRegView nicht verwendet wird, ist die Einstellung standardmäßig Default.
Dieser Befehl ist nur für die 64-Bit-Version von Windows sinnvoll. 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-Befehlen 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 des Befehls. Diese Standardeinstellung kann geändert werden, indem der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) verwendet wird.
RegRead, RegWrite, RegDelete, Registry-Schleife
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 RegRead Wert, 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%.