我正在使用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 ...... ??
答案 0 :(得分:23)
64位版本的Windows通过“Windows on Windows”(WoW)子系统模拟32位功能。在注册表的情况下,出于兼容性原因,它们将32位密钥移动到特殊子密钥。
密钥位于:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node
。
这是将system32
映射到SysWOW64
的文件系统重定向器的注册表模拟。