C# 访问操作注册表整理
一、.net注册表操作简介
.net中Registry 类,RegistryKey 类提供了操作注册表的接口
RegistryValueKind,用于指定操作注册表的数据类型。
二、使用实例
//获取子节点数量 Console.WriteLine(Registry.LocalMachine.SubKeyCount); //获取所有自己点的键值 string[] subs = Registry.LocalMachine.GetSubKeyNames(); foreach (var item in subs) { Console.WriteLine(item); } //打开子节点 RegistryKey sub1 = Registry.LocalMachine.OpenSubKey(subs[0]); Console.WriteLine(sub1.Name); //HKEY_LOCAL_MACHINE\BCD00000000 //打开子节点2,特别说明不能\开头,不能包含根节点 RegistryKey sub2 = Registry.LocalMachine.OpenSubKey(@"BCD00000000\Description", true); Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINE\BCD00000000\Description //获取项下的 键值 string[] names = sub2.GetValueNames(); foreach (var item in names) { //获取值 Console.WriteLine(item + "--->" + sub2.GetValue(item)); } //特别注意,如果想写入内容,在打开注册表的时候writable,需要设置成true //创建键值 sub2.SetValue("zhangsan", "1234", RegistryValueKind.String); //创建子项 RegistryKey sub3 = sub2.CreateSubKey("sub3"); sub3.SetValue("sub3_key", 1100, RegistryValueKind.DWord);
三、特别说明
1.打开注册表示,不能\开头,不能包含根节点
//打开子节点2,特别说明不能\开头,不能包含根节点 RegistryKey sub2 = Registry.LocalMachine.OpenSubKey(@"BCD00000000\Description", true); Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINE\BCD00000000\Description
2.写入注册表当前程序需要有足够的权限,推荐一管理员身份运行当前程序。
3.如果想写入内容,在打开注册表的时候writable,需要设置成true
4.对于已经存在的键值或项,则直接覆盖不抛出异常
更多:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人