上官玉� 2021-04-11 17:59 采纳率: 100%
浏览 61
已采纳

C#获取注册表的子键和值

在控制台上输出指定注册表键中的所有值及子键(包含子键中的值)

  • 写回答

1条回答 默认 最新

  • Go 旅城通票 2021-04-11 21:14
    关注

     

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Win32;
    namespace ConsoleApp1
    {
        class Program
        {
            static RegistryKey GetRootKey(string root)
            {
                switch (root) {
                    case "HKEY_CLASSES_ROOT": return Registry.ClassesRoot;
                    case "HKEY_CURRENT_USER": return Registry.CurrentUser;
                    case "HKEY_LOCAL_MACHINE": return Registry.LocalMachine;
                    case "HKEY_USERS": return Registry.Users;
                    case "HKEY_CURRENT_CONFIG": return Registry.CurrentConfig;
                    default:throw new Exception("顶级注册表键不存在");
                }
            }
            static void Recursion(RegistryKey key)
            {
                if (key.SubKeyCount > 0)
                {
                    var subKeys = key.GetSubKeyNames();
                    foreach (var sk in subKeys)
                    {
                        Recursion(key.OpenSubKey(sk));
                    }
                }
    
                var vns = key.GetValueNames();
                Console.WriteLine("\n\n" + key.Name);
                foreach (var vn in vns)
                    Console.WriteLine((vn==""?"默认":vn) + ":" + key.GetValue(vn));
            }
            static void Main(string[] args)
            {
                Console.Write("输入注册表路径:");
                var s = Console.ReadLine();
                var keys = s.Split('\\');
                var rootkey = GetRootKey(keys[0]);
                var key = rootkey.OpenSubKey(String.Join("\\", keys.Skip(1)));
                Recursion(key);
    
    
                Console.ReadKey();
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置