zoukankan      html  css  js  c++  java
  • C#读、写、删除注册表

    1.首先,必须导入空间"Microsoft.Win32" 2.利用Registry类,确定注册表的分支(ClassesRoot,CurrentUser,Users,LocalMachine,CurrentConfig)

    using Microsoft.Win32;
    RegistryKey key = Registry.LocalMachine;
    3.创建/打开/删除注册表项
    RegistryKey key = Registry.LocalMachine;
    //创建
    //注意:注册表路径一定是"\\"而不是"\"
    RegistryKey software = key.CreateSubKey("software\\MyApp");

    //打开(true表示可以写入)
    RegistryKey software = key.OpenSubKey("software\\MyApp",true); 
    RegistryKey Product 
    = software.CreateSubKey("Product");

    //删除
    key.DeleteSubKey("software\\MyApp",true);
    //记得关闭,两个都要关
    key.Close();
    ProductID.Close();
    4.创建/打开/删除键值
    RegistryKey key = Registry.LocalMachine;
    RegistryKey software 
    = key.OpenSubKey("software\\My",true); 
    //写入
    software.SetValue("ProductID""Leo Tian's blog"); 
    //读取
    string info = "";
    info 
    = software.GetValue("ProductID").ToString();
    //删除
    software.DeleteValue("test");
    //关闭
    software.Close()
    5.最后贴出两个判断函数
    //判断项目是否存在
    private bool IsRegeditItemExist(RegistryKey RegBoot, string ItemName)
    {
        
    if (ItemName.IndexOf("\\"<= -1)
        {
            
    string[] subkeyNames;
            subkeyNames 
    = RegBoot.GetValueNames();
            
    foreach (string ikeyName in subkeyNames)  //遍历整个数组
            {
                
    if (ikeyName == ItemName) //判断子项的名称
                {
                    
    return true;
                }
            }
            
    return false;               
        }
        
    else
        {
            
    string[] strkeyNames = ItemName.Split('\\');
            RegistryKey _newsubRegKey 
    = RegBoot.OpenSubKey(strkeyNames[0]);
            
    string _newRegKeyName = "";
            
    int i;
            
    for(i=1;i<strkeyNames.Length;i++)
            {
                _newRegKeyName 
    = _newRegKeyName + strkeyNames[i];
                
    if(i!=strkeyNames.Length-1)
                {
                    _newRegKeyName 
    = _newRegKeyName + "\\";
                }
            }
            
    return IsRegeditItemExist(_newsubRegKey,_newRegKeyName);
        }
    }

    //判断键值是否存在
    private bool IsRegeditKeyExist(RegistryKey RegBoot, string RegKeyName)
    {

        
    string[] subkeyNames;
        subkeyNames 
    = RegBoot.GetValueNames();
        
    foreach (string keyName in subkeyNames)
        {

            
    if (keyName == RegKeyName)  //判断键值的名称
            {
                
    return true;
            }
        }
        
    return false;
    }
  • 相关阅读:
    基于NIO的服务器模型
    Thinking in java 笔记三
    Thinking in java 笔记二
    Thinking in java 笔记一
    Windows 上的苹果 mac Time Machine 时间机器免费替代品 FreeFileSync 操作指南
    扫描仪扫描文件处理-ABBYY对扫描版PDF文字加黑加粗、去除背景漂白
    扫描仪扫描文件处理-Photoshop批处理无响应问题
    阅读-Calibre Library转PDF、EPUB配置
    扫描仪扫描文件处理-图像扫描加工到生成PDF步骤简述[JAVA版]
    扫描仪扫描文件处理-纸书切割扫描步骤
  • 原文地址:https://www.cnblogs.com/leotian/p/1350411.html
Copyright © 2011-2022 走看看