C/C++ 注册表【1】基本介绍

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunjikui1255326447/article/details/88802268

1.   注册表简介
        注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件,用于存储系统和应用程序的设置信息。16位驱动在Winnt (Windows New Technology)下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS(基本输入输出系统)来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。

2. 注册表结构
        注册表是是Microsoft Windows中的一个重要而又复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。从用户的角度看,注册表系统由两个部分组成:注册表数据库和注册表编辑器。注册表数据库包括两个文件:system.dat和user.dat。system.dat用来保存微机的系统信息,如安装的硬件和调和驱动程序的有关信息等。user.dat用来保存每个用户特有的信息,如桌面设置、墙纸或窗口的颜色设置等。由于注册表是最重要的系统文件之一,因此对于它的保护和备份就特别重要。系统在每次成功启动之后都将此次启动时的注册表作一个备份。system.dat的备份文件为system.dao,user.dat的备份文件为user.dao。如果由于某种原因注册表受到破坏,则可以用这两个备份文件来恢复注册表。Win 98/Win Me备份的注册表文件保存在C:/WINDOWS/SYSBCKUP文件夹(这是个隐藏文件夹)中,文件名称是rb000.cab、rb002.cab、rb003.cab、rb004.cab、rb005.cab(通常为五个)。
3、注册表构建如图:(图片来子VC驿站)

4、常用的注册表的键值类型:
     其他不常用格式具体见MSDN:
      REG_BINARY:未处理的二进制数据。多数硬件组件信息都是以二进制存储,而以十六进制格式显示在注册表编辑器中;
      REG_WORD:数据由4字节长的数表示。许多设备驱动程序和服务的参数是这种类型,并在注册表编辑器中以二进制、十六进制或十进制的格式显示;
      REG_EXPAND_SZ:长度可变的数据串。该数据类型包含在程序或服务使用该数据时确定的变量
      REG_MULTI_SZ:多重字符串。其中包含格式可被用户读取的列表。项用空格、逗号、或其他标记分开;
     REG_SZ:固定长度的文本串;

5、几个根键的用途说明:

HKEY_LOCAL_MACHINE 根键中包含了操作系统、安装软件及硬件的相关信息。如计算机总线类型、系统可用内存、当前装载了哪些设备驱动程序以及启动控制数据等。
实际上,HKEY_LOCAL_MACHINE 根键保存着注册表中的大部分信息,而另外4个根键都是其子键的别名。

HKEY_CURRENT_USER 根键包含这当前登录到计算机上的用户的配置文件。其子键包含着环境变量、个人程序组、桌面设置、网络连接、打印机和应用程序首选项等信息。
计算机把当前用户的信息映射到这个根键下,若未激活用户配置,则它指向子键 HKEY_USERS\.DEFAULT。

HKEY_CLASSES_ROOT 根键记录的是系统中各类文件与其应用程序之间的对应关系,即记录了某类文件和打开该类文件的应用程序之间的相互关联关系。
HKEY_CLASSES_ROOT 根键是 HKEY_LOCAL_MACHINE\SOFTWARE\Classes 的快捷方式,是注册表的一个最大分支,包括了成千上万的与程序、文件相关联的键和值以及ActiveX类的定义等内容。

HKEY_USERS 根键下包含了计算机的所有用户的信息。用户根据个人爱好设置的诸如桌面、背景、开始菜单程序项、应用程序快捷键、显示字体、屏幕节电设置等信息均记录在这个跟建中
HKEY_CURRENT_USER 也是 HKEY_USERS 其中的的一个快捷键部分。

HKEY_CURRENT_CONFIG 根键包含的主要内容是计算机的当前配置情况,如显示器、打印机等可选外部设备及其设置信息等。

 

特别注意:windows X86 和 Windows X64略微有些不同,根键:HKEY_LOCAL_MACHINE,子键路径为“SOFTWARE\\Runtest ”,创建后就在“HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node”

关于注册表基础就这么多了,下一篇介绍注册表编程。

猜你喜欢

转载自blog.csdn.net/sunjikui1255326447/article/details/88802268