6

谁能告诉我为什么我无法访问注册表项"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData"

如果我查询它只返回一个值是GetSubKeysNames---- >所有其他子键在哪里?"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer""Secure"

谢谢。

4

1 回答 1

15

您在 64 位版本的 Windows 上运行程序的可能性很高,并且它被迫在 32 位模式下运行。注册表重定向器将使您真正读取 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node 中的键。是的,那个也有一个 Microsoft\Windows\CurrentVersion\Installer 键,但它是空的。使用 Regedit.exe 进行比较。

最简单的解决方法是消除强迫。Project + Properties,Build 选项卡,将 Target platform 设置为 AnyCPU。如果您有 VS2012 及更高版本,请取消勾选“首选 32 位”选项。重复发布配置。如果必须在 32 位模式下运行,则可以使用 .NET 4+ RegistryKey.OpenBaseKey() 方法,传递 RegistryView.Registry64。

于 2013-11-04T13:57:35.770 回答