【发布时间】:2011-11-21 16:47:28
【问题描述】:
我在安装时使用 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... ??
【问题讨论】:
-
如果您使用的是 64 位,您可能需要查看
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node。 -
@Polynomial 这就是答案。你为什么不这样发布呢?
-
不完全确定,但看起来确实如此。我会发布作为答案。
-
@polynomial 我有 99.9% 的把握肯定会是这样。我敢打赌,RegeditX 是过去的 32 位进程。
-
我想起了 Xzibit:“你好,我喜欢重定向,所以我们把重定向放在你重定向中,这样你就可以在重定向时重定向”