什么是注册表 Windows注册表是帮助Windows控制硬件软件用户环境和Windows界面的一套数据文件注册表包含在Windows目录下两个文件systemdat和userdat里还有它们的备份systemda和userda通过Windows目录下的regeditexe程序可以存取注册表数据库在以前在windows的更早版本(在Win以前)这些功能是靠wininisystemini和其他和应用程序有关联的ini文件来实现的 在windows操作系统家族中systemini和winini这两个文件包含了操作系统所有的控制功能和应用程序的信息systemini管理计算机硬件而winini管理桌面和应用程序所有驱动字体设置和参数会保存在ini文件中任何新程序都会被记录在ini文件中这些记录会在程序代码中被引用因为受winini和systemini文件大小的限制程序员添加辅助的INI文件以用来控制更多的应用程序举例来说微软的Excel有一个excelini文件它包含着选项设置缺省参数和其他关系到Excel运行正常的信息在systemini和winini中只需要指出excelini的路径和文件名即可 注册表的演化 早在Dos和Winx的时代大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息如设置路径环境变量等systemini和winini控制着所有windows和应用程序的特征和存取方法它在少数的用户和少数应用程序的环境中工作的很好随着应用程序的数量和复杂性越来越大则需要在ini文件中添加更多的参数项这样下来在一个变化的环境中在应用程序安装到系统中后每个人都会更改ini文件然而没有一个人在删除应用程序后删除ini文件中的相关设置所以systemini和winini这个两个文件会变的越来越大每增加的内容会导致系统性能越来越慢而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置而且还有一个明显的问题一个ini文件的最大尺寸是KB为了解决这个问题软件商自己开始支持自己的ini文件然后指向特定的ini文件如winini和systemini文件这样下来多个ini文件影响了系统正常的存取级别设置如果一个应用程序的ini文件和WININI文件设置起沖突究竟是谁的优先级更高呢? 注册表最初被设计为一个应用程序的数据文件相关参考文件最后扩展成对于位操作系统和应用程序包括了所有功能下的东东注册表是一套控制操作系统外表和如何响应外来事件工作的文件这些事件的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等注册表因为它的目的和性质变的很复杂它被设计为专门为位应用程序工作文件的大小被限制在大约MB利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施软件配置等信息从而方便了管理增强了系统的稳定性最直观的一个实例就是为什么windows下的不同用户可以拥有各自的个性化设置如不同的墙纸不同的桌面这就是通过注册表来实现的 由此可见注册表(Registry)是Windowsx/Me/NT/操作系统硬件设备以及客户应用程序得以正常运行和保存设置的核心数据库是一个巨大的树状分层的数据库它记录了用户安装在机器上的软件和每个程序的相互关联关系它包含了计算机的硬件配置包括自动配置的即插即用的设备和已有的各种设备说明状态属性以及各种状态信息和数据等 注册表的应用 二注册表都做些什么? 注册表是为Windows NT和Windows中所有位硬件/驱动和位应用程序设计的数据文件位驱动在Windows NT下无法工作所以所有设备都通过注册表来控制一般这些是通过BIOS来控制的在Winx下位驱动会继续以实模式方式设备工作它们使用systemini来控制位应用程序会工作在NT或者Winx 下它们的程序仍然会参考winini和systemini文件获得信息和控制 在没有注册表的情况下操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入 在系统中注册表是一个记录位驱动的设置和位置的数据库当操作系统需要存取硬件设备它使用驱动程序甚至设备是一个BIOS支持的设备无BIOS支持的设备安装时必须需要驱动这个驱动是独立于操作系统的但是操作系统需要知道从哪里找到它们文件名版本号其他设置和信息没有注册表对设备的记录它们就不能被使用 注册表控制用户模式的例子有: ★控制面板功能 ★桌面外观和图标 ★网络参数 ★浏览器功能性和特征 这些功能中的某些是和用户无关的有些是针对用户的 如何调用注册表 在windows的开始/运行菜单中输入regedit你就可以通过注册表编辑器看到注册表注册表是什么呢?简单地说它是用来对windows操作系统进行配置的一个工具通过它可以对操作系统及应用软件进行优化可以自己设置windows的使用权限可以解决硬件及网络设置不当带来的故障甚至可以改造自己的操作系统 在windows X时代主要通过WININI及SYSTEMINI对windows进行配置但WININI及SYSTEMINI文件存在着安全性不高大小受限制等问题为了解这一问题microsoft公司在WINDOWS以后的版本中引入了注册表这一便更好的对windows系统进行配置这就是为什么我们要使用注册表的原因 注册表的作用是保存程序所需要的信息当程序需要这些信息时就从注册表里读出因此注册表最基本的功能就是保存信息 当了解了注册表的主要功能保存信息后再来了解其保存信息后再来了解保存信息所发挥的作用! 记录安装信息; 设置硬件属性; 定制WINDOWS以及应用软件 注册表逻辑结构中最基本的是主键子键键值项以及键值它们是按照分组的方式来管理和组织的首先是最底根键每个根键下有若干个子键每个子键下又可以有若干(一个或多个)子键子键下可以有一个或多个键值项和键值 根键注册表中最底层的键类似于磁盘上的根目录 子键子键位于根键下又可以嵌套其他子键中在注册表的六大根键中有若干的子键而每个子键中又可以嵌套成千上万的子键 键值项与键值 键值项与键值: 在每个根键和子键下可以有若干键值这种结构类似于磁盘上根目录和子目录里的文件和文件内容 windows x注册表逻辑结构中包含六个根键每个根键包含着分类不同的信息!在windowsNT//XP中如果用windows自带的编辑器打开的时候只能看到五个还有一个隐藏的根键:HKEY_PERFOR_MANCE_DATA *HKEY_CLASS_ROOT 记录windows操作系统中所有数据文件的格式和关联信息主要记录不同文件的文件名后缀和与之对应的应用程序其下子键可分为两类:一类是已经注册的各类文件的扩展名这类子键前面都带有一个;另一类是各类文件类型有关信息 *HKEY_CURRENT_USER 此根根键包含当前登录用户的用户配置文件信息这些信息保证不同的用户登录计算机时使用自己的修改化设置例如自己定义的墙纸自己的收件箱自己的安全访问权限 *HKEY_LOCAL_MACHINE 此根键包含了当前计算机的配置灵气包括所安装的硬件以软件设置这些信息是为所有的用户登录系统服务的这是事个注册表中最庞大也是最重要的根键! *HKEY_USERS HKEY_USERS根键包括默认用户的信息(DEFAULT子键)和所有以前登陆用户的信息 *HKEY_CURRENT_CONFIG 此根键实际上是HKDY_LOCAL_MACHINE/CONFIG/分支下的数据完全一样 *HKEY_DYN_DATA根键 这个键保存每次系统启动时创建的系统配置和当前性能信息这个根键只存在于windows X中 *HKEY_PERFORMANCE_DATA 在windowsNT//XP注册表中虽然没有HKEY_DYN_DAT键但是它却隐藏了一个名为HKEY_PERFORMANCE_DATA的键所有系统中的动态信息都是存放在此子键中系统自带的注册表编辑器无法看到些键介可以用专门的程序来查看此键比如使用性能监视器 |