zoukankan      html  css  js  c++  java
  • .NET 5 中操作注册表方法

    关于注册表

    注册表是存储设备,用于提供有关应用程序、用户和默认系统设置的信息。 例如,应用程序可以使用注册表存储需要在应用程序关闭后保留的信息,并在重新加载应用程序时访问相同的信息。 例如,你可以存储颜色首选项、屏幕位置或窗口大小。 可以通过将信息存储在注册表中的不同位置来控制每个用户的此数据。

    说明

    C#中操作注册表,我们需要使用Registry类,提供表示 Windows 注册表中的根项的 RegistryKey 对象,并提供访问项/值对的 static 方法。
    命名空间: Microsoft.Win32
    程序集: Microsoft.Win32.Registry.dll

    public static class Registry
    

    在.Net Framework x.应用当中,我们只需要添加Microsoft.Win32即可。

    using Microsoft.Win32;
    
    namespace ConsoleApp3
    {
        class Program
        {
            static void Main(string[] args)
            {
                //在存储有关用户首选项的信息下面创建了一个子项TestKey
                RegistryKey testKey = Registry.CurrentUser.CreateSubKey("TestKey");
            }
        }
    }
    

    而在.NET 5当中,该功能不再默认提供,需要单独在NuGet安装,如下所示:

    关于Registry类的使用范围如下:

    RegistryKey

    RegistryKey 表示 Windows 注册表中的项级节点。Registry 静态类中提供了多种公开RegistryKey。

    字段

    • CurrentUser 存储有关用户首选项的信息。
    • LocalMachine 存储本地计算机的配置信息。
    • ClassesRoot 存储有关类型 (和类) 及其属性的信息。
    • Users 存储有关默认用户配置的信息。
    • PerformanceData 存储软件组件的性能信息。
    • CurrentConfig 存储非用户特定的硬件信息。
    • DynData 存储动态数据。

    方法

    Registry类还包含 static GetValue SetValue 用于设置和检索注册表项中的值的方法。 这些方法在每次使用注册表项时都将其打开和关闭,因此 RegistryKey 当你访问大量值时,它们不会在类中执行和类似的方法。

    创建/读取/删除 注册表键

    using Microsoft.Win32;
    
    namespace ConsoleApp2
    {
        class Program
        {
            static void Main(string[] args)
            {
                //创建一个TestKey注册表键值
                RegistryKey testKey = Registry.CurrentUser.CreateSubKey("TestKey");
    
                //创建子项
                var nameKey = testKey.CreateSubKey("Name");
    
                //创建键值
                nameKey.SetValue("Id", 123);
                nameKey.SetValue("Language", "China");
    
    
                //读取子项当中的值
                var readKey = testKey.OpenSubKey("Name");
    
                //idString=123
                var idString = readKey.GetValue("Id").ToString();
    
                //删除子项
                testKey.DeleteSubKey("Name");
            }
        }
    }
    

    效果

    打开Windows注册表编辑器, 会发现上一步创建的注册表项,会在指定的顶级节点当中

  • 相关阅读:
    48. 旋转图像(顺时针)
    560. 和为K的子数组
    75. 颜色分类(三指针移动||计数排序)
    670. 最大交换
    常见端口号汇总
    springboot解决跨域问题跨域
    jad使用
    tomcat9:解决tomcat catalina log和localhost log中文乱码
    JUC:阻塞队列
    JUC:读写锁
  • 原文地址:https://www.cnblogs.com/zh7791/p/14297316.html
Copyright © 2011-2022 走看看