SetRegView [v1.1.08+]
设置 RegRead,RegWrite,RegDelete 和注册表循环使用的注册表视图.
SetRegView, RegView
参数
- RegView
-
指定 32 以 32 位程序的方式来查看注册表,而 64 以 64 位程序的方式浏览注册表.
指定单词 Default 来恢复到默认的行为.
一般说明
此命令仅在 64 位 Windows 上有用.它在 32 位 Windows 中没有效果.
在 64 位系统中,32 位程序运行于被称为 WOW64 的 Windows 子系统中.默认情况下,系统会重定向某些注册表键来避免冲突.例如,在 32 位脚本中,HKLM\SOFTWARE\AutoHotkey
会被重定向到 HKLM\SOFTWARE\Wow6432Node\AutoHotkey
.SetRegView 允许 32 位脚本中的注册表命令访问在 64 位注册表视图中被重定向的键,反之亦然.
内置变量 A_RegView 包含了当前设置.每个新运行的线程(例如热键,自定义菜单项或定时子程序)都会以此命令的默认设置开始.通过在脚本的自动执行段 (脚本的顶部) 使用此命令可以改变这个默认设置.
相关
RegRead,RegWrite,RegDelete,Loop(注册表)
示例
示例 1 演示了如何设置特定的注册表视图以及注册表重定向对脚本的影响.
; 以 32 位程序的方式访问注册表. SetRegView 32 RegWrite REG_SZ, HKLM, SOFTWARE\Test.ahk, Value, 123 ; 以 64 位程序的方式访问注册表. SetRegView 64 RegRead value, HKLM, SOFTWARE\Wow6432Node\Test.ahk, Value RegDelete HKLM, SOFTWARE\Wow6432Node\Test.ahk MsgBox Read value '%value%' via Wow6432Node. ; 恢复默认的注册表视图,这 ; 取决于脚本是 32 位还是 64 位的. SetRegView Default ;...
示例 2 演示了如何判断正在运行脚本的 EXE 和操作系统的类型.
if (A_PtrSize = 8) script_is := "64-bit" else ; if (A_PtrSize = 4) script_is := "32-bit" if (A_Is64bitOS) OS_is := "64-bit" else OS_is := "32-bit, which has only a single registry view" MsgBox This script is %script_is%, and the OS is %OS_is%.