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. 【读书笔记】C#高级编程 第二十四章 文件和注册表操作

    (一)文件和注册表 对于文件系统操作,相关的类几乎都在System.IO名称空间中,而注册表操作由System.Win32名称空间中的类来处理. (二)管理文件系统 System.MarshalByR ...

  4. CRegKey 注册表操作

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. linux thread 互斥锁

    #include <stdio.h> #include <stdlib.h> #include <pthread.h> void *threadhandle(voi ...

  2. 利用shell脚本函数实现网络连通性的检测

    通常情况下,linux系统网络连通性的检测有两种方法: 1.通过“ping指令 + 目标IP” 或者 “ping指令 + 目标IP域名” 注意针对IPv6地址的IP网络检测需要试用ping6,同时pi ...

  3. jquery编写插件

    jquery编写插件的方法    版权声明:作者原创,转载请注明出处! 编写插件的两种方式: 1.类级别开发插件(1%) 2.对象级别开发(99%) 类级别的静态开发就是给jquery添加静态方法,三 ...

  4. Lua----注意事项

    前言:Lua相对一般的语言相对简单,有c基础看一遍就差不多了.一般的代码都能够看懂.但是Lua也有一些自己的特点,区别与其他语言,这里需要注意一下. 1.数组下标 在Lua中数组下标是从1开始计数的. ...

  5. Linux命令记录

    端口号 1.查看端口号 使用netstat -anp来查看那些端口被打开.加参数'-n'会将应用程序转为端口显示,即数字格式的地址,如:nfs->2049, ftp->21,因此可以开启两 ...

  6. AE模板替换-众多图片沿着球体旋转!与您分享

    AE-模板替换<众多图片沿球体旋转>效果的视频        近日,本人又一次做了AE的[图片替换]的模板尝试,本人感觉:预览视频时发现的效果较新颖,也有些气势;就是短了些,我安排了,&q ...

  7. STL,ATL,WTL的联系与区别

    STL   即   Standard   Template   Library         STL(标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander   Stepanov. ...

  8. QuerryRunner Tools

    package com.ydbg.gis.utils; import java.sql.SQLException; import java.util.List; import java.util.Ma ...

  9. 如何禁止KEIL初始化RAM为零& 如何判断是软复位还是上电复位

    (1)如何禁止KEIL初始化RAM为零? 1. 在KEIL Noinit 打钩 2. <1> 另须对需要热启动保持的变量用 _at_ 关键字指定某个区域,否则还是没用 <2>或 ...

  10. 8051单片机I/O引脚工作原理

    一.P0端口的结构及工作原理 P0端口8位中的一位结构图见下图: 由上图可见,P0端口由锁存器.输入缓冲器.切换开关.一个与非门.一个与门及场效应管驱动电路构成.再看图的右边,标号为P0.X引脚的图标 ...