RegRead、RegWrite、RegDelete、RegDeleteKeyおよびLoop Regが使用するレジストリビューを設定し、32ビットスクリプトで64ビットレジストリビューにアクセスできるようにします(逆も同様)。
SetRegView RegView
32ビットアプリケーションのようにレジストリを表示する場合は32を、64ビットアプリケーションのようにレジストリを表示する場合は64を指定してください。
通常の動作に戻す場合は、「Default」を指定します。
型:文字列
この関数は、前の設定を返します。32、64またはDefaultのいずれかです。
SetRegView関数が使われないときは、初期値はDefaultです。
この機能は、Windows 64ビット版でのみ有効です。Windows 32ビットでは効果がありません。
64ビットシステムでは、32ビットアプリケーションは、WOW64と呼ばれるWindowsのサブシステム上で動作します。デフォルトでは、競合を防ぐために特定のレジストリキーをリダイレクトするようになっています。例えば、32ビットスクリプトの場合、HKLM\SOFTWARE\AutoHotkey
は HKLM\SOFTWARE\Wow6432Node\AutoHotkey
へリダイレクトされる。SetRegViewにより、32ビットスクリプトのレジストリ関数が64ビットレジストリビューのリダイレクトされたキーにアクセスできるようになり、その逆も可能です。
組込変数A_RegViewには、現在の設定値が格納されています。
新しく起動するスレッド(ホットキー、カスタムメニュー項目、時間指定サブルーチンなど)はすべて、この機能のデフォルト設定で新しくスタートします。このデフォルトは、スクリプト起動時にこの関数を使用することで変更することができます。
RegRead、RegWrite、RegCreateKey、RegDelete、RegDeleteKey、Loop Reg
特定のレジストリビューを設定する方法、およびレジストリリダイレクトがスクリプトに与える影響について示します。
; Access the registry as a 32-bit application would. SetRegView 32 RegWrite "REG_SZ", "HKLM\SOFTWARE\Test.ahk", "Value", 123 ; Access the registry as a 64-bit application would. SetRegView 64 value := RegRead("HKLM\SOFTWARE\Wow6432Node\Test.ahk", "Value") RegDelete "HKLM\SOFTWARE\Wow6432Node\Test.ahk" MsgBox "Read value '" value "' via Wow6432Node." ; Restore the registry view to the default, which ; depends on whether the script is 32-bit or 64-bit. SetRegView "Default" ;...