无法在RegEdit中看到某些HKEY_LOCAL_MACHINE条目

时间:2011-11-21 16:47:28

标签: delphi registry

我正在使用HKEY_LOCAL_MACHINE在安装时设置变量。这些需要由机器上的所有用户查看,并且只能由他们阅读。

我使用Inno创建条目。它以管理员身份运行,因此它应该具有足够的权利,虚拟化不会启动......或者我是否误解了?

我的应用程序可以读取条目(即使是Win7中的受限用户)但是我在RegEdit或RegEditX 3.0中看不到它们。我可以在RegEditX 2.0中看到它们。怪异。

我不明白为什么我的Delphi应用程序可以看到该条目,但上面的RegEdit程序不能。

我相信这可能与虚拟化有关(首先回答:Cannot read config data from HKEY_LOCAL_MACHINE on Vista)。

但是,我甚至无法在HKCU \ Software \ Classes \ VirtualStore \ MACHINE \ SOFTWARE下看到有问题的注册表项。

HKEY_LOCAL_MACHINE是否已被弃用,我应该完全避免它?现在开发人员如何为所有用户保存数据 - 只需要{commomappdata},通常是C:\ Program Data ...... ??

1 个答案:

答案 0 :(得分:23)

64位版本的Windows通过“Windows on Windows”(WoW)子系统模拟32位功能。在注册表的情况下,出于兼容性原因,它们将32位密钥移动到特殊子密钥。

密钥位于:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

这是将system32映射到SysWOW64的文件系统重定向器的注册表模拟。

有关Registry Redirector

的MSDN主题,可以找到更多详细信息