2010-12-16 116 views
33

我有尝试写入注册表项中LOCAL_MACHINE无法写入注册表项,获得UnauthorizedAccessException

的关键是创建一个Windows安装程序包的一部分,一个窗口服务的控制窗口服务和一个独立控制窗口。

控制窗口可以读取和写入注册表项,但是我无法写入注册表项,即使我给予本地服务的完全权限。

这是抛出异常的代码:

private void updateLocalRegistryVersion(Double newVersion) 
{ 
    RegistryKey rk = Registry.LocalMachine; 
    RegistryKey sk = rk.OpenSubKey(@"Software\CompanyName\Monitoring\Values"); 

    sk.SetValue("scriptversion", newVersion.ToString()); 
} 

有什么建议?

回答

66

RegistryKey.OpenSubKey(string)没有打开写入的钥匙。尝试使用OpenSubKey(string, bool)重载指定您希望密钥可写。

+7

+1谢谢!这是一个恼人的(但明显的)过载。有点尴尬,我错过了... – Pwninstein 2011-03-14 22:05:56