zoukankan      html  css  js  c++  java
  • 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_MACHINEBCD00000000
    
    //打开子节点2,特别说明不能开头,不能包含根节点
    RegistryKey sub2 = Registry.LocalMachine.OpenSubKey(@"BCD00000000Description", true);
    Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINEBCD00000000Description
    
    //获取项下的 键值
    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(@"BCD00000000Description", true);
    Console.WriteLine(sub2.Name);//HKEY_LOCAL_MACHINEBCD00000000Description

    2.写入注册表当前程序需要有足够的权限,推荐一管理员身份运行当前程序。

    3.如果想写入内容,在打开注册表的时候writable,需要设置成true

    4.对于已经存在的键值或项,则直接覆盖不抛出异常

    更多:

    Registry 类

    RegistryKey 类

    注册表相关枚举

    C#如何以管理员身份运行程序(转)

  • 相关阅读:
    docker将jar打包镜像文件
    特性阻抗(转)
    关于三极管偏置电路的思考
    怎样理解阻抗匹配?(转)
    你要包火到几时呢
    Bluetooth Note
    今年过年没回家
    第二天(tomcat与web程序结构与Http协议与HttpUrlConnection)
    JavaIO操作(1)转换流
    canphp框架功能与特性介绍
  • 原文地址:https://www.cnblogs.com/tianma3798/p/6579785.html
Copyright © 2011-2022 走看看