访问HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData

任何人都可以告诉我为什么我无法访问"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData"的注册表项?

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

谢谢。

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

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