无法写入注册表项 [英] cannot write to the registry key

查看:174
本文介绍了无法写入注册表项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我收到错误不能写,当我试图挽救我的钥匙在注册表中的注册表项。



//这里是我的代码。



请注意:我想作为一个Administartor运行假设一些权限问题仍然得到同样的错误......

 私人常量字符串RegistryKeyName =SKMS 
私人只读的RegistryKey SoftwareKey = Registry.LocalMachine.OpenSubKey(软件);

公共KeyManagementRegistryKeyChangeImpl(布尔可写)
{
this.writable =可写;
的RegistryKey SKMS;
如果(Environment.Is64BitOperatingSystem ==真)
{
SKMS = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine,RegistryView.Registry64).OpenSubKey(RegistryKeyName,真);

}
,否则
{
SKMS = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine,RegistryView.Registry32);
}

如果(空== SKMS)
{
SKMS = SoftwareKey.CreateSubKey(RegistryKeyName,RegistryKeyPermissionCheck.ReadWriteSubTree);
}

如果(SKMS == NULL)
{
抛出新System.ArgumentException(的String.Format(CultureInfo.InvariantCulture,
@注册表关键'HKEY_LOCAL_MACHINE\SOFTWARE\ {0}未找到或创造,
RegistryKeyName));
}

解密解密= Decryptor.Create();


解决方案

 如果(空== SKMS)
{
SKMS = Registry.LocalMachine.OpenSubKey(软件,真正的);
的RegistryKey键= skms.CreateSubKey(
RegistryKeyName,RegistryKeyPermissionCheck.ReadWriteSubTree);
}

这是我的问题的答案。


I am getting error cannot write to the registry key when i am trying to save my keys in the registry .

//Here is my code .

Note : I tried to run as an Administartor assuming some permission problems still getting the same error ....

private const string RegistryKeyName = "Skms";
private readonly RegistryKey SoftwareKey = Registry.LocalMachine.OpenSubKey("SOFTWARE");

public KeyManagementRegistryKeyChangeImpl(bool writeable)
    {
        this.writable = writeable;
        RegistryKey skms; 
        if (Environment.Is64BitOperatingSystem == true) 
        {
            skms = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64).OpenSubKey(RegistryKeyName,true);

        }
        else
        {
            skms = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
        }

        if (null == skms)
        {
            skms = SoftwareKey.CreateSubKey(RegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree);
        }

        if(skms == null)
        {
            throw new System.ArgumentException(string.Format(CultureInfo.InvariantCulture, 
                @"Registry Key 'HKEY_LOCAL_MACHINE\SOFTWARE\{0}' not found or created",
                RegistryKeyName));
        }

        Decryptor decryptor = Decryptor.Create();

解决方案

if (null == skms)            
{             
   skms = Registry.LocalMachine.OpenSubKey("SOFTWARE",true);              
   RegistryKey key = skms.CreateSubKey(
          RegistryKeyName, RegistryKeyPermissionCheck.ReadWriteSubTree);      
}

This is the answer for my question .

这篇关于无法写入注册表项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆