大学IT网 - 最懂大学生的IT学习网站! QQ资料交流群:367606806
当前位置:大学IT网 > C#技巧 > c# 注册表操作,创建,删除,修改,判断节点是否存在

c# 注册表操作,创建,删除,修改,判断节点是否存在(2)


[摘要]本文是对c# 注册表操作,创建,删除,修改,判断节点是否存在的讲解,对学习C#编程技术有所帮助,与大家分享。

C#代码收藏代码

    RegistryKeydelKey=Registry.LocalMachine.OpenSubKey(Softwaretest,true);
    delKey.DeleteValue(test);
    delKey.Close();



细心的读者可能发现了第二个例子中OpenSubKey()方法参数与其他例子的不同。
如果你要修改键值,包括创建、设置、删除键值等都要在方法后面加个布尔参数,设置为true,表示可写可改;如果仅

仅只是读取键值可以不加,此时可写关闭,你不能再往里写值(当然,你要加也可以true)!
还有读者提到读写默认键值的问题,主要在设置、读取的方法中将键名置空则就是对默认键值的操作。
如:
C#代码收藏代码

    software.SetValue(,园);


在HKEY_LOCAL_MACHINESOFTWAREtest修改默认键值的值为“园”。读取类似!
另外,默认的键值是不能删除的,所以不要用DeleteValue()方法去删除,会抛出异常的!


三:判断注册表项是否存在
C#代码收藏代码

    privateboolIsRegeditItemExist()
    {
    string[]subkeyNames;
    RegistryKeyhkml=Registry.LocalMachine;
    RegistryKeysoftware=hkml.OpenSubKey(SOFTWARE);
    RegistryKeysoftware=hkml.OpenSubKey(SOFTWARE,true);
    subkeyNames=software.GetSubKeyNames();
    //取得该项下所有子项的名称的序列,并传递给预定的数组中
    foreach(stringkeyNameinsubkeyNames)遍历整个数组
    {
    if(keyName==test)判断子项的名称
    {
    hkml.Close();
    returntrue;
    }
    }
    hkml.Close();
    returnfalse;
    }



四:判断键值是否存在
C#代码收藏代码

    privateboolIsRegeditKeyExit()
    {
    string[]subkeyNames;
    RegistryKeyhkml=Registry.LocalMachine;
    RegistryKeysoftware=hkml.OpenSubKey(SOFTWAREtest);
    RegistryKeysoftware=hkml.OpenSubKey(SOFTWAREtest,true);
    subkeyNames=software.GetValueNames();
    //取得该项下所有键值的名称的序列,并传递给预定的数组中
    foreach(stringkeyNameinsubkeyNames)
    {
    if(keyName==test)判断键值的名称
    {
    hkml.Close();
    returntrue;
    }
    }
    hkml.Close();
    returnfalse;
    }
«上一页12下一页»


相关评论