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

时间:2022-09-05 08:26:43

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

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;
}
}
}