【问题标题】:Unable to see certain HKEY_LOCAL_MACHINE entries in RegEdit无法在 RegEdit 中看到某些 HKEY_LOCAL_MACHINE 条目
【发布时间】: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:“你好,我喜欢重定向,所以我们把重定向放在你重定向中,这样你就可以在重定向时重定向”

标签: delphi registry


【解决方案1】:

64 位版本的 Windows 通过“Windows on Windows”(WoW) 子系统模拟 32 位功能。对于注册表,出于兼容性原因,它们会将 32 位键移至特殊子键。

密钥将位于:HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node

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

有关Registry Redirector 的更多详细信息,请参见 MSDN 主题。

【讨论】:

  • 谢谢。我以为我无法在注册表中找到一些我知道隐藏在其中的记录,我快疯了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
相关资源
最近更新 更多