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

本文介绍了一个使用C#进行Windows注册表读取、写入、查询和删除操作的示例程序。通过具体的代码实现展示了如何安全地操作注册表,包括创建子键、设置键值以及检查键的存在状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值