C#实现注册表 LocalMachine 目录下CURD工具类

【1】注册表是什么?
         百度百科 https://baike.baidu.com/item/%E6%B3%A8%E5%86%8C%E8%A1%A8/101856?fr=aladdin

【2】怎么打开注册表?
         Windows+R >>>>>> regedit

【3】C# 源码 

       

 /// <summary>
/// 注册表 CURD
/// 在LocalMachine 目录文件下
/// </summary>
public class RegeditUtils
{
/// <summary>
/// 注册信息节点是否存在
/// </summary>
/// <param name="key">"SOFTWARE\\Microsoft"格式</param>
/// <returns></returns>
public static bool IsExsits(string key)
{
var indicator = true;
if (Registry.LocalMachine.OpenSubKey(key) == null)
{
indicator = false;
}
return indicator;
}
/// <summary>
/// 创建注册信息
/// </summary>
/// <param name="key">"SOFTWARE\\Microsoft"格式</param>
public static void Create(string key)
{
Registry.LocalMachine.CreateSubKey(key);
}
/// <summary>
/// 更新注册表字段值
/// </summary>
/// <param name="rsg">传入注册表节点</param>
/// <param name="name">节点内字段名称</param>
/// <param name="value">需要设置的值</param>
public static void Update(RegistryKey rsg,string name,string value)
{
if (rsg!=null)
{
if (!string.IsNullOrEmpty(name))
{
rsg.SetValue(name, value); //写入
}
rsg.Close(); //关闭
}
}
/// <summary>
/// 获取注册表节点实体
/// </summary>
/// <param name="key">"SOFTWARE\\Microsoft"格式</param>
/// <returns></returns>
public static RegistryKey Read(string key)
{
RegistryKey rsg = Registry.LocalMachine.OpenSubKey(key, true);
return rsg;
} /// <summary>
/// 获取注册表节点实体内某个属性的值
/// </summary>
/// <param name="key">"SOFTWARE\\Microsoft"格式</param>
/// <param name="prop">传入属性的键值</param>
/// <returns></returns>
public static string ReadPropValue(string key,string prop)
{
var res = "";
RegistryKey rsg = Registry.LocalMachine.OpenSubKey(key, true);
if (rsg!=null)
{
var obj = rsg.GetValue(prop);
if (obj!=null)
{
res = obj.ToString();
}
}
return res;
}
/// <summary>
/// 删除注册表节点
///
/// </summary>
/// <param name="key">"SOFTWARE\\Microsoft"格式</param>
public static void Delete(string key)
{
if (IsExsits(key))
{
Registry.LocalMachine.DeleteSubKey(key);
}
} /// <summary>
/// 创建注册表节点,并对相应字段赋值
/// </summary>
/// <param name="key">节点</param>
/// <param name="name">属性名称</param>
/// <param name="value">值</param>
public static void CreateRegedit(string key, string name, string value)
{
try
{ //判断当前节点是否存在
if (!IsExsits(key))
{
//不存在该节点,创建节点
Create(key);
}
//获取该节点
var rsg = Read(key);
//该节点字段属性赋值
Update(rsg, name, value);
}
catch (Exception ex)
{
Log.Error(ex);
} }
}

此博文为原创,转载请注明出处!!!!!

上一篇:基于canvas+ajax+zui.js的蓄电池监控系统


下一篇:PCB走线分析——直角、差分、蛇形线