新发的日常小实验——c#获取windows注册表信息

14 篇文章 1 订阅

一、前言

百度百科:Windows注册表(Registry)实质上是一个庞大的数据库,它存储着下面这些内容:用户计算机软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸载数据;计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件的描述、状态和属性;计算机性能记录和底层的系统状态信息,以及各类其他数据。

在我们平常的计算机维护和使用中,可能会和注册表打交道,一些问题的解决可能会涉及到对注册表的相关键值进行增删改查等操作。

二、打开注册表编辑器

win + R键,输入regedit,按回车,可以打开注册表编辑器
在这里插入图片描述
在注册表编辑器中,我们可以看到五大主键:

主键说明
HKEY_CLASSES_ROOT(根主键)包含了所有已装载的应用程序、OLE或DDE信息,以及所有文件类型信息。
HKEY_CURRENT_USER(当前用户主键)记录了有关登录计算机网络的特定用户的设置和配置信息。
HKEY_LOCAL_MACHINE(机器主键)该主键存储了Windows开始运行的全部信息。即插即用设备信息、设备驱动器信息等都通过应用程序存储在此键。
HKEY_USERS(用户主键)描述了所有同当前计算机联网的用户简表。如果您独自使用该计算机,则仅.Default子键中列出了有关用户信息。该子键包括了控制面板的设置。
HEKY_CURRENT_CONFIG(当前配置主键)该键存储了系统的动态信息,这些信息保存在随机存储器中。此键住处能用于系统快捷操作,可以看到网络统计和当前系统配置的任何信息。

在这里插入图片描述

三、使用C#查询注册表信息

Microsoft.Win32命名空间下,有个Registry静态类,提供了各大主键的静态对象,比如HKEY_CLASSES_ROOT主键,直接使用Registry.ClassesRoot来访问。
在这里插入图片描述
如下,我们想查询HKEY_CLASSES_ROOT\unityhub\DefaultIcon这个键中,name(默认)的数据
在这里插入图片描述
对应的C#代码如下

using Microsoft.Win32;
using System;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
        	// 注意不需要HKEY_CLASSES_ROOT,另外\注意用\\
            RegistryKey subKey = Registry.ClassesRoot.OpenSubKey("unityhub\\DefaultIcon");
            if(null != subKey)
            {
            	// name是(默认),所以直接使用空字符串""即可
                string unityHubExe = (string)subKey.GetValue("");
                Console.WriteLine("unityHubExe: " + unityHubExe);
            }
            
			//让程序不退出
            Console.ReadLine();
        }
    }
}

运行效果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林新发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值