您现在的位置: 弘智首页 > .NET > C# >

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

时间:2012-09-28 来源:弘智教育 点击: 次

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

    }
}

弘智主页 | 弘智介绍 | 培训课程 | XML地图