C#注册表的读,写,删除,查找

首先分享一下写入,这个最常用的

public bool WriteRegedit() 
    { 
        try 
        { 
            RegistryKey rk = Registry.CurrentUser; 
            RegistryKey softWare = rk.OpenSubKey("Software"); 
            RegistryKey microsoft = softWare.OpenSubKey("Microsoft"); 
            RegistryKey windows = microsoft.OpenSubKey("Windows"); 
            RegistryKey current = windows.OpenSubKey("CurrentVersion"); 
            RegistryKey explorer = current.OpenSubKey("Explorer"); 
            RegistryKey shell = explorer.OpenSubKey(@"Shell Folders", true);//这里必须加true就是得到写入权限 
            RegistryKey key = shell.CreateSubKey("swort");//创建swort目录 


            key.SetValue("swort", "test"); 
            //在swort目录下建立写入swort test 
            Response.Write("写入成功!!!!!!!!!"); 
            return true; 
        } 
        catch 
        { 
            return false; 
        } 
 
接下来是给出一个操作网页的cs文件,大家看着调用就行
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.Win32;
public partial class Register : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Write("这里是读取到的信息"+"<br/>");
        ReadRegedit();
        Response.Write("<br/>");
        Response.Write("这里将要写入信息swort/swort-test" + "<br/>");
        WriteRegedit();
        Response.Write("写入结束" + "<br/>");
        Response.Write("查看存在与否" + "<br/>");
        ExistsRegedit();
        Response.Write("查看结束" + "<br/>");
        Response.Write("删除" + "<br/>");
        DeleteRegedit();
        Response.Write("删除结束" + "<br/>");
        Response.Write("查看存在与否" + "<br/>");
        ExistsRegedit();
        Response.Write("查看结束" + "<br/>");
    }
    /// <summary>
    /// 注册表的读取
    /// </summary>
    /// <returns></returns>
    public void ReadRegedit()
    {
        RegistryKey rk = Registry.CurrentUser;
        RegistryKey softWare = rk.OpenSubKey("Software");
        RegistryKey microsoft = softWare.OpenSubKey("Microsoft");   
        RegistryKey windows = microsoft.OpenSubKey("Windows");
        RegistryKey current = windows.OpenSubKey("CurrentVersion");
        RegistryKey explorer = current.OpenSubKey("Explorer");
        RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
        foreach (string b in shell.GetValueNames())//这里用shell.GetValueNames()不是shell.GetSubKeyNames()
        {
            Response.Write( b+"            "+ shell.GetValue(b).ToString());
            Response.Write("<br/>");
              
        }
       
   
    }
    /// <summary>
    /// 注册表的写入
    /// </summary>
    /// <returns></returns>
    public bool WriteRegedit()
    {
        try
        {
            RegistryKey rk = Registry.CurrentUser;
            RegistryKey softWare = rk.OpenSubKey("Software");
            RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
            RegistryKey windows = microsoft.OpenSubKey("Windows");
            RegistryKey current = windows.OpenSubKey("CurrentVersion");
            RegistryKey explorer = current.OpenSubKey("Explorer");
            RegistryKey shell = explorer.OpenSubKey(@"Shell Folders", true);//这里必须加true就是得到写入权限
            RegistryKey key = shell.CreateSubKey("swort");//创建swort目录
            key.SetValue("swort", "test");
            //在swort目录下建立写入swort test
            Response.Write("写入成功!!!!!!!!!");
            return true;
        }
        catch
        {
            return false;
        }
        
    }
    /// <summary>
    /// 注册表的删除
    /// </summary>
    /// <returns></returns>
    public bool DeleteRegedit()
    {
        try
        {
            RegistryKey rk = Registry.CurrentUser;
            RegistryKey softWare = rk.OpenSubKey("Software");
            RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
            RegistryKey windows = microsoft.OpenSubKey("Windows");
            RegistryKey current = windows.OpenSubKey("CurrentVersion");
            RegistryKey explorer = current.OpenSubKey("Explorer");
            RegistryKey shell = explorer.OpenSubKey(@"Shell Folders",true);
            RegistryKey swort = shell.OpenSubKey("swort",true);//这里必须加true就是得到写入权限
            swort.DeleteValue("swort");//删除swort的值   这个连键值一起删除了 剩下一个
            shell.DeleteSubKey("swort",false);//删除swort这个目录   要删除这个目录 必须具有权限
           
            Response.Write("删除成功!!!!!!!!!");
            return true;
        }
        catch
        {
            return false;
        }
        return true;
    }
    /// <summary>
    /// 查询某个键值是否存在
    /// </summary>
    /// <returns></returns>
    public bool ExistsRegedit()
    {
        RegistryKey rk = Registry.CurrentUser;
        RegistryKey softWare = rk.OpenSubKey("Software");
        RegistryKey microsoft = softWare.OpenSubKey("Microsoft");
        RegistryKey windows = microsoft.OpenSubKey("Windows");
        RegistryKey current = windows.OpenSubKey("CurrentVersion");
        RegistryKey explorer = current.OpenSubKey("Explorer");
        RegistryKey shell = explorer.OpenSubKey(@"Shell Folders");
        if (shell.SubKeyCount != 0)
        {
            RegistryKey swort = shell.OpenSubKey("swort");
            foreach (string b in swort.GetValueNames())
            {
                if (b == "swort")
                {
                    Response.Write("存在这个键!");
                    return true;
                }

            }
            Response.Write("不存在这个键!");
            return false;
        }
        else
        { Response.Write("不存在这个键!");
        return false;
        }
    }
}
原文地址:https://www.cnblogs.com/lzgeveryday/p/4315869.html