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);
} }
}
此博文为原创,转载请注明出处!!!!!
C#实现注册表 LocalMachine 目录下CURD工具类的更多相关文章
- hdwiki model目录下的函数类
model目录下的函数类 actions.class.php(站内地图相关) getHTML:获得页面菜单和相关信息 getMap:生成站内地图 adv.class.php 对wiki_adve ...
- 【Unity3D】Unity3D之 注册表动态存取游戏存档——PlayerPrefs类
[Unity3D]Unity3D之 注册表动态存取游戏存档--PlayerPrefs类 1.Unity3D提供了一个用于本地持久化保存与读取的类--PlayerPrefs.工作原理非常简单,以键值对的 ...
- python- 动态加载目录下所有的类
# 背景 自动化测试框架中model层下有很多类,用来操作mysql的,使用的时候需要把全部的类加载进来,需要使用到动态加载类 # 解决方法 使用pkgutil,内置的方法,常用的话有两个方法 ite ...
- jdk1.6中bin目录下的工具及其作用
jdk的javaw.javac等的介绍java:在msdos终端窗口中执行.class文件,即解释执行.class文件.通常所说的jvm解释权.javaw:在java自己的窗口中执行.class文件而 ...
- java中jre\bin目录和jdk\bin目录下的工具功能介绍
转自:https://blog.csdn.net/eclipse_yin/article/details/51051096 jre/bin目录下面工具说明 javac:Java编译器,将Java源代码 ...
- BASH如何获得某个目录下的某类文件的文件名
假设某个目录下有一堆以jpeg为后缀的文件名,我们需要在另一个目录中获得他们的文件名,并输出. 可以联合使用ls,awk,sed等命令来完成. 方法一: 使用ls列出目录下以.jpeg为结尾的文件,然 ...
- JDK的bin目录下各种工具的使用说明_对不起自己,这么久没写博,抱歉
appletviewer.exe(小程序浏览器):一种执行HTML文件上的Java小程序类的Java浏览器 apt.exe:SolarisTM 操作系统和 Linux上用于处理注释的工具 extche ...
- Android SDK中 tools 目录下的工具介绍
Android SDK包含了各种各样的定制工具,简介如下: Android模拟器(Android Emulator )它是在你的计算机上运行的一个虚拟移动设备.你可以使用模拟器来在一个实际的Andro ...
- 文件/目录部分处理工具类 DealDir.java
package com.util; import java.io.File; import java.util.StringTokenizer; /** * 文件/目录 部分处理 * @createT ...
随机推荐
- golang 中 string 转换 []byte 的一道笔试题
背景 去面试的时候遇到一道和 string 相关的题目,记录一下用到的知识点.题目如下: s:="123" ps:=&s b:=[]byte(s) pb:=&b s ...
- Twitter分布式自增ID算法snowflake原理解析
以JAVA为例 Twitter分布式自增ID算法snowflake,生成的是Long类型的id,一个Long类型占8个字节,每个字节占8比特,也就是说一个Long类型占64个比特(0和1). 那么一个 ...
- shell的嵌入命令大全
围绕以下几点展开学习: 1.什么是shell的嵌入命令? 2.为什么使用shell? 3.怎样使用shell嵌入命令? 1.什么是shell的嵌入命令: ♦这些命令是在实际的Bourne shell里 ...
- ssh框架整合笔记
1.建立普通的Javaweb项目,导入项目所必须的jar包. 2.配置web.xml文件. web.xml 3.在src下建立struts.xml. struts.xm 4.在实体包下配置 实体名 ...
- 带着新人看java虚拟机07(多线程篇)
这一篇说一下比较枯燥的东西,为什么说枯燥呢,因为我写这都感觉很无聊,无非就是几个阻塞线程的方法和唤醒线程的方法... 1.线程中断 首先我们说一说怎么使得一个正在运行中的线程进入阻塞状态,这也叫做线程 ...
- 简易版本vue的实现
用了Vue也有两年时间了,一直以来都是只知其然,不知其所以然,为了能更好的使用Vue不被Vue所奴役,学习一下Vue底层的基本原理. Vue官网有一段这样的介绍:当你把一个普通的JavaScript对 ...
- LeetCode二叉树的前序、中序、后序遍历(递归实现)
本文用递归算法实现二叉树的前序.中序和后序遍历,提供Java版的基本模板,在模板上稍作修改,即可解决LeetCode144. Binary Tree Preorder Traversal(二叉树前序遍 ...
- 【php性能优化】关于写入文件操作的取舍方案
对于使用php对文件进行写入操作有两种方案一种使用 file_put_contents() 和 fopen()/fwrite()/fclose() 两种方案至于应该怎么选,我觉得应该分情况选择,下面是 ...
- jqGrid 常用 总结 -2
这次的总结是针对于一次bug,先说下我们遇到的问题,就是后台人员告诉我们添加数据到100条数据的时候,101条就看不到,当时我觉得就是没有分页的原因,所以我就以为在jqgrid中设置一个loadonc ...
- 4.熟悉App Inventor 2编程界面
以下图片来自 https://www.17coding.net/的 俄罗斯方块开发笔记 的 第二章 开发与测试环境 .感谢金老师的分享. 建议大家打开上面第二章的链接,认真阅读.