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 sehen, oder 64, um die Registry aus Sicht einer 64-Bit-Anwendung zu sehen.
Mit dem Wort Default wird das normale Verhalten wiederhergestellt.
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-Schlüssel 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 vorerst die Standardeinstellung des Befehls. Um diese zu ändern, muss der Befehl im automatischen Ausführungsbereich (ganz oben im Skript) angegeben werden.
RegRead, RegWrite, RegDelete, Registry-Schleife
Zeigt, wie eine bestimmte Registry-Ansicht gesetzt werden kann und wie die Registry-Weiterleitung das Skript beeinflusst.
; Greift auf die Registry zu, wie es eine 32-Bit-Anwendung tun würde. SetRegView 32 RegWrite REG_SZ, HKLM, SOFTWARE\Test.ahk, Wert, 123 ; Greift auf die Registry 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-Registry-Ansicht wieder her, je ; nachdem, ob das Skript im 32-Bit- oder 64-Bit-Format ist. SetRegView Default ;...
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%.