无法写入HKEY_CURRENT_USER

时间:2012-10-05 16:16:45

标签: c# windows registry

我有一个C#程序(VS2010),它将值写入我们创建的几个HKEY_CURRENT_USER注册表项中。通常这在Win XP, Vista, and 7, x86 and x64上工作正常。但是在某些机器上,键不会被写入。没有异常抛出,键和值之后就不存在了。

我们正在拔出头发试图弄清楚为什么会发生这种情况。它真的是零星的...在一台机器上它不起作用 - 但它可以在同一办公室或域中的所有其他机器上工作。

我们应该寻找什么?

1 个答案:

答案 0 :(得分:0)

你所描述的内容听起来很像微软的Registry Virtualization

但是,据我所知,这仅适用于32位应用程序的HKEY_LOCAL_MACHINE \ Software。

注册表虚拟化是在Windows Vista中引入的,旨在提供与未使用Vista的UAC编写的应用程序的向后兼容性。我们的想法是将注册表操作重定向到通常会影响注册表敏感区域(如HKLM)的特定位置,其中唯一的影响将是当前用户。它应该也可以向后工作 - 当访问注册表的其中一个部分时,它会检查重定向的位置,然后才能找到一个不存在的密钥。