我的 32 位应用程序在 64 位 Windows 7 上运行。我正在尝试访问注册表HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall
。我可以在 regedit 中看到Uninstall
默认 64 位注册表视图中的键下方有几个子键(Dropbox 在该位置创建一个键,以及 Google Chrome)。Uninstall
但是,在 32 位注册表视图中确实没有键。实际上,在 regedit 下面只有一个Active Setup
键HKEY_CURRENT_USER\Software\Wow6432Node\Microsoft
。下面甚至没有Windows
子键Microsoft
。
但是,当我的 32 位应用程序尝试访问 32 位注册表视图时HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
,我会从 64 位视图中获取密钥。这是为什么?
即使是标志KEY_WOW64_32KEY在这里也无济于事。我们的代码需要知道结果是来自 32 位视图还是 64 位视图。
我们的代码还可以访问密钥的 32 位和 64 位视图,HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall
我在那里看不到这个问题。不同之处在于 HKLM 的 32 位视图有Uninstall
密钥,而 HKCU 的 32 位视图没有。
我知道 WoW64 的注册表重定向,但这似乎不同。我在 MSDN 上找不到任何有用的信息。有人可以对此有所了解吗?