注册表历史 (信息来源互联网,仅供学习交流使用)
前身
最初,Windows系统及应用程序的信息被存储在后缀名为ini的文本文件中,这就是注册表的前身。但是这么做有着致命弱点:因为每一个程序都会新安装一个或多个ini文件,来存储程序信息,导致信息的分布极为零乱;而且在16位系统下,ini文件的大小必须在64KB之内。所以ini文件被认为不便于使用和管理。
发布与发展
在最早出现于Windows 3.0的OLE技术出现后,微软为了存放系统中大量的软件组件信息,组织了一个reg.dat的数据库来存放这些信息。当时的注册表编辑器为16位版本的regedit.exe,功能较弱。
后来开发的Windows NT则更进一步使用相同的文件格式来存放系统的配置信息,以取代原有的ini文件。该系统为每一个用户在用户目录下创建了一个自身的注册表空间,而系统的设置被存放在系统文件夹中。由于Windows NT是一个32位操作系统,regedit.exe被升级为regedt32.exe,并增加了对权限的设置功能。
在Windows 95中,注册表首次得到广泛应用,逐渐淘汰了原有的ini文件。程序在安装时,不再将数据写入ini文件,而直接写入注册表。为了最大限度兼容旧程序,部分原来用于写入ini文件的专门API函数仍然可用,但现在是将信息写入注册表。Windows 95为了保持和Windows 3.x系列的兼容性,注册表的架构与Windows NT不同,为此专门开发了另一个32位版本的regedit.exe,它没有设置权限的功能。
在Windows 2000中,由于Windows 95家族已经深入人心,regedit.exe也得到广泛应用,相反regedt32.exe的界面相对比较丑陋,因此微软将windows 95系列的regedit.exe拿过来用。但由于移植过来的regedit.exe仍没有权限设置的功能,regedt32.exe仍然保留在系统中用作权限设置。
到Windows XP和Windows Server 2003中,regedit.exe已经增加了权限的功能,regedt32.exe由于失去作用而被剔除。同时,这个版本的注册表是64位的,这导致了一些兼容性问题,少数可以运行在旧版本Windows的程序在Windows XP中无法运作。
(待续、、、、、、)
PS:我也是刚学注册表的,手头也没这方面权威的书,只好去网上搜些资料来提高自己,只要不出意外,每天都会保持更新的。资料方面尽量去粗取精。希望这张帖会成为见证你我学习注册表的历程。
用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TheWorld)
| 显示类型(在编辑器中) | 数据 类型 | 说明 |
| REG_SZ | 字符串 | 文本字符串 |
| REG_MULTI_SZ | 多字符串 | 含有多个文本值的字符串 |
| REG_BINARY | 二进制数 | 二进制值,以十六进制显示 |
| REG_DWORD | 双字 | 一个32位的二进制值,显示为8位的十六进制值 |
| 名称 | 作用 |
| HKEY_CLASSES_ROOT | 存储Windows可识别的文件类型的详细列表,以及相关联的程序。 |
| HKEY_CURRENT_USER | 存储当前用户设置的信息。 |
| HKEY_LOCAL_MACHINE | 包括安装在计算机上的硬件和软件的信息。 |
| HKEY_USERS | 包含使用计算机的用户的信息。 |
| HKEY_CURRENT_CONFIG | 这个分支包含计算机当前的硬件配置信息。 |