RegLocator 表

RegLocator 表保存使用注册表搜索文件或目录所需的信息,或搜索特定注册表项本身所需的信息。 此表包含以下列。

类型 密钥 Nullable
Signature_ Identifier Y N
Root 整数 N N
密钥 RegPath N N
名称 Formatted N Y
类型 整数 N Y

 

Signature_

Signature_ 字段中的值表示一个唯一签名,该签名是 Signature 表第一列的外部键。 如果 Signature 表中存在此签名,则搜索文件。 如果 Signature 表中缺少此签名,并且 Type 列的值为 msidbLocatorTypeRawValue,则搜索 RegLocator 表指向的注册表项名称。 否则搜索 RegLocator 表指向的目录。

Root

注册表值的预定义根注册表项。

常数 十六进制 十进制 根注册表项
msidbRegistryRootClassesRoot 0x000 0 HKEY_CLASSES_ROOT
msidbRegistryRootCurrentUser 0x001 1 HKEY_CURRENT_USER
msidbRegistryRootLocalMachine 为 0x002 2 HKEY_LOCAL_MACHINE
msidbRegistryRootUsers 0x003 3 HKEY_USERS

 

Key

注册表值的键。

Name

注册表值名称。 如果此值为 null,则检索键的未命名值或默认值(如果有)。

Type

一个值,该值确定注册表值是文件名、目录位置还是原始注册表值。

下表列出了有效值。 如有必要,请设置前三个值之一和 msidbLocatorType64bit。 如果此字段中的条目不存在,则 Type 设置为 1。

常数 十六进制 十进制 说明
msidbLocatorTypeDirectory 0x000 0 键路径是一个目录。
msidbLocatorTypeFileName 0x001 1 键路径是一个文件名。
msidbLocatorTypeRawValue 为 0x002 2 键路径是注册表值。
msidbLocatorType64bit 0x010 16 如果设置此位,则安装程序将搜索注册表的 64 位部分。 如果不设置此位,则安装程序将搜索注册表的 32 位部分。

 

备注

请注意,如果 Type 字段中的值为 msidbLocatorTypeRawValue,则安装程序会将 AppSearch 表的 Property 字段中指定的属性值设置为注册表值。 安装程序向注册表值中添加一个前缀,用于标识注册表值类型。 有关注册表值类型的详细信息,请参阅注册表值类型

注册表类型 由安装程序添加的前缀
REG_SZ 无,但如果注册表值的第一个字符是 #,则安装程序会通过添加另一个 # 作为前缀来转义该字符。
DWORD “#”(可选),后跟“+”或“-”
REG_EXPAND_SZ "#%"
REG_MULTI_SZ NULL。 安装程序将该属性设置为以 NULL 开头并以 NULL 结尾的值。
REG_BINARY “#x”在 REG_BINARY 的情况下,安装程序将每个十六进制数字(半字节)转换并保存为以“#x”为前缀的 ASCII 字符。

 

通常,此表中的列不会本地化。 如果作者决定用多种语言搜索产品,则表中必须针对每种语言包含单独的条目。

注意,无法使用 RegLocator 表仅针对密钥的存在检查。 但可以搜索键的默认值,并且可以检索其值(如果不为空)。

有关详细信息,请参阅搜索现有应用程序、文件、注册表项或 .ini 文件条目

验证

ICE03
ICE06
ICE46
ICE80