C#操作注册表之RegistryKey类

 更新时间:2022年05月13日 11:32:04   作者:天马3798  
这篇文章介绍了C#操作注册表之RegistryKey类,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

表示 Windows 注册表中的项级节点。 此类是注册表封装。

继承层次结构

System.Object 
  System.MarshalByRefObject
    Microsoft.Win32.RegistryKey

命名空间:Microsoft.Win32

程序集:mscorlib(在 mscorlib.dll 中) 

属性

名称说明
Handle获取一个 SafeRegistryHandle 对象,该对象表示当前 RegistryKey 对象封装的注册表项。
Name检索项的名称。
SubKeyCount检索当前项的子项数目。
ValueCount检索项中值的计数。
View获取用于创建注册表项的视图。

方法

名称说明
Close关闭该项,如果该项的内容已修改,则将该项刷新到磁盘。
CreateSubKey(String)创建一个新子项或打开一个现有子项以进行写访问。
CreateSubKey(String, RegistryKeyPermissionCheck)使用指定的权限检查选项创建一个新子项或打开一个现有子项以进行写访问。
CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions)使用指定的权限检查和注册表选项,创建或打开一个用于写访问的子项。
CreateSubKey(String, RegistryKeyPermissionCheck, RegistrySecurity)使用指定的权限检查选项和注册表安全性创建一个新子项或打开一个现有子项以进行写访问。
CreateSubKey(String, RegistryKeyPermissionCheck, RegistryOptions, RegistrySecurity)使用指定的权限检查选项、注册表选项和注册表安全性,创建或打开一个用于写访问的子项。
DeleteSubKey(String)删除指定的子项。
DeleteSubKey(String, Boolean)删除指定的子项,并指定在找不到该子项时是否引发异常。
DeleteSubKeyTree(String)递归删除子项和任何子级子项。
DeleteSubKeyTree(String, Boolean)以递归方式删除指定的子项和任何子级子项,并指定在找不到子项时是否引发异常。
DeleteValue(String)从此项中删除指定值。
DeleteValue(String, Boolean)从此项中删除指定的值,并指定在找不到该值时是否引发异常。
Dispose释放由 RegistryKey 类的当前实例占用的所有资源。
Flush将指定的打开注册表项的全部特性写到注册表中。
FromHandle(SafeRegistryHandle)根据指定的句柄创建注册表项。
FromHandle(SafeRegistryHandle, RegistryView)利用指定的句柄和注册表视图设置创建注册表项。
GetAccessControl()返回当前注册表项的访问控制安全性。
GetAccessControl(AccessControlSections)返回当前注册表项的访问控制安全性的指定部分。
GetSubKeyNames检索包含所有子项名称的字符串数组。
GetValue(String)检索与指定名称关联的值。 如果注册表中不存在名称/值对,则返回 null。
GetValue(String, Object)检索与指定名称关联的值。 如果未找到名称,则返回您提供的默认值。
GetValue(String, Object, RegistryValueOptions)检索与指定的名称和检索选项关联的值。 如果未找到名称,则返回您提供的默认值。
GetValueKind检索与指定名称关联的值的注册表数据类型。
GetValueNames检索包含与此项关联的所有值名称的字符串数组。
OpenBaseKey打开一个新的 RegistryKey,它使用指定的视图在本地计算机上表示请求的项。
OpenRemoteBaseKey(RegistryHive, String)打开一个新的 RegistryKey,它表示远程计算机上的请求的项。
OpenRemoteBaseKey(RegistryHive, String, RegistryView)打开一个新的注册表项,它使用指定的视图在远程计算机上表示请求的项。
OpenSubKey(String)以只读方式检索子项。
OpenSubKey(String, RegistryKeyPermissionCheck)检索指定的子项以进行读取或读/写访问。
OpenSubKey(String, Boolean)检索指定的子项,并指定是否将写访问权限应用于该项。
OpenSubKey(String, RegistryKeyPermissionCheck, RegistryRights)检索指定的子项以进行读取或读/写访问,请求指定的访问权限。
SetAccessControl向现有注册表项应用 Windows 访问控制安全性。
SetValue(String, Object)设置指定的名称/值对。
SetValue(String, Object, RegistryValueKind)使用指定的注册表数据类型设置注册表项中的名称/值对的值。
ToString检索此项的字符串表示形式。 (重写 Object.ToString()。)

备注

要获取 RegistryKey 的实例,请使用 Registry 类的静态成员之一。

注册表充当计算机上操作系统和应用程序的中央信息储存库。 注册表根据存储在其中的元素的逻辑顺序,以分层形式组织(有关该层次结构中的基级项,请参见 Registry)。在注册表中存储信息时,请根据存储的信息类型选择适当的位置。 一定要避免损坏由其他应用程序创建的信息,原因是这样会导致那些应用程序出现意外的行为,并且还会对您自己的应用程序带来不利影响。

注册表项是组织基本单元在注册表,并且可以与文件资源管理器的文件夹比较。 每个具体的注册表项都可以有子项,就像文件夹下可以有子文件夹一样。 只要用户具有相应的权限,且注册表项不是基项或基项的下一级项,就可以删除该注册表项。 每个注册表项也可带有与其相关联的多个值(一个值就好比是一个文件),它们用于存储信息,例如,有关计算机上安装的应用程序的信息。 每个值存储特定的信息,可按需要对其进行检索或更新。 例如,可以为您的公司创建一个 RegistryKey(在项 HKEY_LOCAL_MACHINE\Software 下),然后为您的公司创建的每个应用程序创建一个子项。 每个子项保存特定于该应用程序的信息,如颜色设置、屏幕位置和大小或者可识别的文件扩展名。

注意,存储在注册表中的信息可由其他应用程序和用户使用,因此不要用注册表存储安全数据或关键的应用程序信息。

警告

在公开 RegistryKey 对象时不要采用一种可能会导致恶意程序创建成千上万的无意义的子项或键/值对的方式。 例如,不允许调用方输入任意键或值。

在 .NET Framework 4 中开始,注册表项的长度不再限于 255 个字符。

到此这篇关于C#操作注册表之RegistryKey类的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C#实现拼图游戏

    C#实现拼图游戏

    这篇文章主要为大家详细介绍了C#实现拼图游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • C# 使用AE获取feature的属性及字段操作

    C# 使用AE获取feature的属性及字段操作

    这篇文章主要介绍了C# 使用AE获取feature的属性及字段操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C#通过流写入一行数据到文件的方法

    C#通过流写入一行数据到文件的方法

    这篇文章主要介绍了C#通过流写入一行数据到文件的方法,涉及C#针对文本文件读写的基本技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • 浅谈c#中const与readonly区别

    浅谈c#中const与readonly区别

    C#引入了readonly修饰符来表示只读域,const来表示不变常量。顾名思义对只读域不能进行写操作,不变常量不能被修改,这两者到底有什么区别呢?
    2015-06-06
  • C#中@的用法总结

    C#中@的用法总结

    这篇文章主要介绍了C#中@的用法总结,非常重要的用法总结,需要的朋友可以参考下
    2014-08-08
  • C#多线程与跨线程访问界面控件的方法

    C#多线程与跨线程访问界面控件的方法

    这篇文章主要介绍了C#多线程与跨线程访问界面控件的方法,实例分析了C#多线程与跨线程访问空间的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • WPF+WriteableBitmap实现高性能曲线图的绘制

    WPF+WriteableBitmap实现高性能曲线图的绘制

    这篇文章主要为大家详细介绍了如何利用WPF+WriteableBitmap实现高性能曲线图的绘制,文中的示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2022-08-08
  • C# 解决datagridview控件显示大量数据拖拉卡顿问题

    C# 解决datagridview控件显示大量数据拖拉卡顿问题

    这篇文章主要介绍了C# 解决datagridview控件显示大量数据拖拉卡顿问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • c# 实现窗体拖到屏幕边缘自动隐藏

    c# 实现窗体拖到屏幕边缘自动隐藏

    让窗体拖到屏幕边缘自动隐藏的原理,通过Form1_LocationChanged的方法,当窗体位置发生改变时,判断其是否在屏幕边缘,在则隐藏。再通过Timer控件经过指定时间判断出鼠标的位置,若鼠标在屏幕左边、上边或右边,这根据窗体的位置,调出窗体。
    2009-02-02
  • C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法

    C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法

    这篇文章主要介绍了C#、.Net中把字符串(String)格式转换为DateTime类型的三种方法,本文总结了Convert.ToDateTime(string)、Convert.ToDateTime(string, IFormatProvider)、DateTime.ParseExact()三种方法,需要的朋友可以参考下
    2015-07-07

最新评论