C#简单注册表操作实例

时间:2022-12-21 19:56:37

1.简介操作

        //设置注册值
private void Button_Click(object sender, RoutedEventArgs e)
{
//路径及间隔符号要正确
//1.如果指定路径不存在,则创建
//2.如果指定键存在,则覆盖值
string path = "HKEY_CURRENT_USER\\myRegOne";
Registry.SetValue(path, "Expend", "hellow world!"); MessageBox.Show("设置成功");
}
//获取指定路径的键对应的值
private void Button_Click_1(object sender, RoutedEventArgs e)
{
//如果不存在则报错
//1.如果指定路径不存在,获取的结果为null
string path = "HKEY_CURRENT_USER\\myRegOne";
object result = Registry.GetValue(path, "Version", 1.0); lblOne.Content = result.ToString();
}

2.项操作:

       //创建项
private void Button_Click(object sender, RoutedEventArgs e)
{
RegistryKey lm = Registry.CurrentUser;
//打开myRegOne
RegistryKey myRegOne = lm.OpenSubKey("myRegOne", true);//指定是否具有写权限 if (myRegOne != null)
{
//新建子项,如果存在则覆盖
RegistryKey mySubKey = myRegOne.CreateSubKey("mySubKey_Three", RegistryKeyPermissionCheck.ReadWriteSubTree);
MessageBox.Show("创建成功!");
}
else
{
myRegOne = lm.CreateSubKey("myRegOne", RegistryKeyPermissionCheck.ReadWriteSubTree);
}
myRegOne.Close();
} //打开项
private void Button_Click_1(object sender, RoutedEventArgs e)
{
RegistryKey lm = Registry.CurrentUser;
//打开
RegistryKey myRegOne = lm.OpenSubKey("myRegOne"); //获取所有的项
string[] subKeyNames = myRegOne.GetSubKeyNames();
listSubKey.Items.Clear();
foreach (var item in subKeyNames)
{
listSubKey.Items.Add(item);
} //获取所有的键值
string[] valueNames = myRegOne.GetValueNames();
listNameValue.Items.Clear();
foreach (var item in valueNames)
{
listNameValue.Items.Add(item + "---" + myRegOne.GetValue(item, "没有设置值"));
} myRegOne.Close();
} //删除项
private void Button_Click_2(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
RegistryKey myRegOne = cu.OpenSubKey("myRegOne", true);//指定是否具有写权限 //删除,指定如果操作失败时是否抛出异常
myRegOne.DeleteSubKey("mySubKey_Three", false);
myRegOne.Close();
MessageBox.Show("删除成功!");
} //判断项是否存在
private void Button_Click_3(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
//打开项
RegistryKey myRegOne = cu.OpenSubKey("myRegOne");
if (myRegOne != null)
{
MessageBox.Show("指定项'myRegOne'存在!");
}
}

3.值操作:

        //设置或新建值
private void Button_Click(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
//打开项,指定写权限
RegistryKey myRegOne = cu.OpenSubKey("myRegOne", true);
if (myRegOne != null)
{
//创建项,如果存在则覆盖
myRegOne.SetValue("Version", "1.23");
myRegOne.SetValue("Enable", , RegistryValueKind.DWord);
myRegOne.SetValue("Expend", "hello world!", RegistryValueKind.ExpandString);
MessageBox.Show("设置值成功");
}
cu.Close();
} //读取值
private void Button_Click_1(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
//打开项
RegistryKey myRegOne = cu.OpenSubKey("myRegOne", true);
if (myRegOne != null)
{
string[] names = myRegOne.GetValueNames();
listOne.Items.Clear();
foreach (var item in names)
{
listOne.Items.Add(item + "----" + myRegOne.GetValue(item));
}
}
cu.Close();
} //删除值
private void Button_Click_2(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
//打开项,指定写权限
RegistryKey myRegOne = cu.OpenSubKey("myRegOne", true);
if (myRegOne != null)
{
myRegOne.DeleteValue("Expend");
MessageBox.Show("删除成功!");
}
cu.Close();
}
//判断值是否存在
private void Button_Click_3(object sender, RoutedEventArgs e)
{
RegistryKey cu = Registry.CurrentUser;
//打开项
RegistryKey myRegOne = cu.OpenSubKey("myRegOne");
if (myRegOne != null)
{
if (myRegOne.GetValue("Expend") != null)
{
MessageBox.Show("该值存在");
}
}
}

C#简单注册表操作实例的更多相关文章

  1. delphi 注册表操作(读取、添加、删除、修改)完全手册

    DELPHI VS PASCAL(87)  32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息. 一.创建和释放TRegistry对象 1.创建TRegistry对象.为了操 ...

  2. Delphi的注册表操作

    转帖:Delphi的注册表操作 2009-12-21 11:12:52 分类: Delphi的注册表操作 32位Delphi程序中可利用TRegistry对象来存取注册表文件中的信息.     一.创 ...

  3. CRegKey 注册表操作

    CRegKey 注册表操作 标签: accessnulluserpathbyteie 2011-11-03 13:55 3477人阅读 评论(0) 收藏 举报  分类: win32(7)  1.简介 ...

  4. 注册表操作 Microsoft.Win32.Registry与RegistryKey类

    一.注册表操作简介 Registry 类,RegistryKey 类提供了操作注册表的接口 RegistryValueKind:用于指定操作注册表的数据类型 一.注册表巢 在注册表中,最上面的节点是注 ...

  5. MFC学习 文件操作注册表操作

    c读写文件 void CFileView::OnRead() { FILE *pFile = fopen("1.txt", "r"); /*char ch[10 ...

  6. C# 我的注册表操作类

    using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; using Syst ...

  7. C#注册表操作类--完整优化版

    using System; using System.Collections.Generic; using System.Text; using Microsoft.Win32; namespace ...

  8. 《天书夜读:从汇编语言到windows内核编程》八 文件操作与注册表操作

    1)Windows运用程序的文件与注册表操作进入R0层之后,都有对应的内核函数实现.在windows内核中,无论打开的是文件.注册表或者设备,都需要使用InitializeObjectAttribut ...

  9. C#注册表操作类(完整版) 整理完整

    /// <summary> /// 注册表基项静态域 /// /// 主要包括: /// 1.Registry.ClassesRoot 对应于HKEY_CLASSES_ROOT主键 /// ...

随机推荐

  1. VBA SQLServer 基本操作

      读取MS SQL Server数据表数据,并将它保存到excel工作表中 Sub ReturnSQLrecord() 'sht 为excel工作表对象变量,指向某一工作表 Dim i As Int ...

  2. C&sol;C&plus;&plus;基础知识总结——数组、指针域、字符串

    1. 数组 1.1 数组作为函数参数 (1) 如果使用数组作为函数的参数,则实参和形参都是数组名,且类型要相同.数组名做参数时传递的是地址 (2) 使用方法: void rowSum(int a[][ ...

  3. Excel 按模板格式导出

    最近遇到一个问题,就是导出数据的时候需要自定义的表头,如图 如果自己用代码写表头的话,可能会有点复杂,而且代码量很多,所以我就想了一个办法,直接在Excel里面把表头定义好,然后把数据写入Excel模 ...

  4. HDU 4614 Vases and Flowers 【线段树】&plus;【二分】

    <题目链接> 题目大意: 有n个花瓶,每个花瓶中只能放一朵花.两种操作,一种是从A开始放F朵花,如果有的花瓶中已经有花则跳过这个花瓶,往下一个花瓶放:第二种是将区间[A,B]之间花瓶中的花 ...

  5. Wannafly挑战赛13 D&period;applese的生日&lpar;贪心&plus;思维&rpar;

    题目描述 最可爱的applese生日啦,他准备了许多个质量不同的蛋糕,想请一些同学来参加他的派对为他庆生,为了不让一部分同学感到不爽,他决定把每个蛋糕都分割成几份(也可以不分割),使得最小的蛋糕的质量 ...

  6. &lbrack;MyBean说明书&rsqb;-添加IApplicationContextEx01接口手动加载库文件

    主控台接口实现了IApplicationContextEx01接口,可以手动执行加载DLL和配置文件,具体使用方法可以参见DEMO(samples\manualLoadLib)   IApplicat ...

  7. docker 删除none镜像

    Windows版本,参考官方地址:https://forums.docker.com/t/how-to-remove-none-images-after-building/7050 docker rm ...

  8. Mirror--镜像断开的解决办法

    如果镜像在搭建一段时候后出现问题,可能存在以下原因: 1. 因为主库或镜像库存在内存压力,导致无法完成镜像日志传送和重做 解决办法:设置数据库最小内存,保证数据库有足够内存完成镜像操作 2. 因为主库 ...

  9. Vue视图

    1. 基本模板语法 1.1 插值 文本 数据绑定最常见的形式就是使用“Mustache”语法 (双大括号) 的文本插值 v-text 指令也可以用于数据绑定,如果要更新部分的 textContent ...

  10. 关于nginx反向代理504 gateway time-out配置

    问题描述: 使用nginx的默认配置用作后端处理服务的反向代理,针对处理时间超过1分钟的请求,返回504 gateway time-out,但后端服务还在执行中. 原因分析: nginx代理默认超时时 ...