什么是注册表?Win95为什么会引入这一特殊数据记录方式?注册表和INI文件相比,到底有何不同?我们该如何有针对性地对其进行修改?带着这些问题,我们约请何宗琦副教授写下了该文。

  什么是注册表?
  PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行灵活配置。在Windows3.x中,对软硬件工作环境灵活配置的特点主要表现在采用了后缀为“INI”的文件来登录硬件和软件的各种初始化信息,以便系统建立符合要求的工作环境。因为每一个设备或者应用程序都可以建立自己的INI文件,所以造成INI文件众多,为INI文件的管理增加了难度。特别是由于这些配置文件的存储都采用局域化方式,因此要在网络上实现远程访问几乎是不可能的。
  为了克服上述问题,就必须建立一个统一管理各种信息资源的机构来集中存储各种配置信息,按照这一原则,在Win95中采用了注册表方式。所谓注册表实际上是一个庞大的数据库,其中容纳了应用程序和计算机系统的全部配置信息、Win95系统和应用程序的初始化信息、应用程序和文档文件的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。
  从一般用户的角度看,注册表系统由两个部分组成:注册表数据库和注册表编辑器。其中注册表数据库包括两个文件:SYSTEM.DAT和USER.DAT。
  SYSTEM.DAT是用来保存微机的系统信息,如安装的硬件和设备驱动程序的有关信息等。这个文件,必须放在Win95子目录下。
  USER.DAT是用来保存每个用户特有的信息,如桌面设置、墙纸或窗口的颜色设置等。这个文件可以放在Win95子目录下,也可以放在网络磁盘上。
  SYSTEM.DAT的自备份文件为SYSTEM.DA0,USER.DAT的自备份文件为USER.DA0。
  注册表编辑器则用来对注册表进行各种编辑工作。

  注册表和INI文件有何不同?
  为了保持系统的向下兼容性,Win95中保留了.INI文件。在形式上,注册表与INI文件有两个显著的特点:
  1.注册表采用的是二进制形式登录数据,INI文件采用的则是简单的文本形式登录数据;
  2.注册表支持子关键字,各级子关键字都有自己的“键值”,INI文件中则支持节以及节中的参数。
  在功能上,注册表与.INI文件相比,主要有以下三个特点:
  1.注册表允许对硬件、某些操作系统参数、应用程序和设备驱动程序进行跟踪配置,这使得某些配置的改变可以在不重新启动系统的情况下立即生效。
  2.注册表中登录的硬件部分数据可以用来支持Win95的即插即用特性。当Win95检测到机器上的各种设备时,就把有关数据保存到注册表中。通常是在安装时进行这种检测的,但Win95启动或原有配置改变时,也要进行检测。如安装一个新的硬件时,Win95将检查注册表,以便确定哪些资源已被占用,这样就可以避免新设备与原有设备之间的资源冲突。
  3.通过注册表,管理人员和用户可以在网络上检查系统的配置和设置,使得远程管理得以实现。

  预定义关键字
  注册表采用“关键字”及其“键值”来描述登录项及其数据。所有的关键字都是以“HKEY”作为前缀开头。实际上,关键字是一个句柄。这种约定使得应用程序开发人员可以在使用注册表API时把它用于程序之中。为此,Win95提供了若干API函数,以便在开发Win95应用程序时添加、修改、查询和删除注册表的登录项。关键字可以分为两类:一类是由系统定义的,通常称为“预定义关键字”;另一类是由应用程序定义的,安装的应用软件不同,其登录项也就不同。
  打开注册表编辑器(Regedit.exe),就可以看到关键字。
  下面我们对上图中系统预定义的六个主关键字进行总的介绍。
  HKEY_CLASSES_ROOT
  该主关键字包含了有关的OLE信息,以便在系统工作过程中实现对各种文件和文档信息的访问。具体的内容有已经注册的文件扩展名、文件类型、文件图标等。
  HKEY_USERS
  PC用户都可以在这里设置自己的关键字和子关键字。根据当前登录的用户不同,这个关键字又可以指向不同的分支部分。这个分支部分将映射到HKEY_CURRENT_USER关键字中。用户根据个人爱好设置的诸如桌面、背景、开始菜单程序项、应用程序快捷键、显示字体、屏幕节电设置等信息均可以在这个关键字中找到。本关键字中的大部分设置都可以通过控制面板来修改。如果用户登录到系统中的信息,没有预定义的登录项,则采用本关键字下面的“Default”子关键字(如图2) 。
  HKEY_CURRENT_USER
  HKEY_CURRENT_USER是一个指向HKEY_USERS结构中某个分支的指针,它包含当前用户的登录信息。实际上它就是HKEY_USERS\Default下面的一部分内容,如果在HKEY_USERS\Default下面没有用户登录的其它内容,那么这两个主关键字包含的内容是完全相同的。
  HKEY_LOCAL_MACHINE
  该关键字包含了本地计算机(相对网络环境而言)的硬件和软件的全部信息。当系统的配置和设置发生变化时,本关键字下面的登录项也将随之改变。
  HKEY_CURRENT_CONFIG
  这个关键字实际上也是指向HKEY_LOCAL _MACHINE\Config结构中的某个分支的指针。HKEY_CURRENT_CONFIG下面的子关键字及内容与HKEY_LOCAL _MACHINE\Config\0001分支下面的子关键字及内容是完全相同的。本关键字包含的主要内容是计算机的当前配置情况,如显示器、打印机等可选外部设备及其设置信息等,而且这个配置信息均将根据当前连接的网络类型、硬件配置以及应用软件的安装不同而有所变化。
  HKEY_DYN_DATA
  顾名思义,本关键字包含了系统运行中的动态数据-即已发生的事件的有关信息。因此这个关键字的内容不仅包含系统硬件的当前状态,也包含了那些需要更新和检索的数据。这些数据都是动态变化的,它们总是最新的信息。WIN95每次启动时都将重新建立这个关键字。为了提高工作速度,HKEY_DYN_DATA实际上是存放在内存(RAM)中的,因此如果发生了对于注册表内容的修改,则不必立即写入磁盘。这对于提高系统的速度是十分必要的(未完待续)。

深 入 认 识 WIN95 注 册 表相关推荐

  1. WSUS注冊表導入,工作組用戶系統更新

    備注:本文屬於轉載,但源地址已不記得了. 在筆者之前的公司裡,筆者有部署過WSUS服務器.因為當時的網絡架構的原因導致一時不能使用組策略來設置客戶端的升級,而一些移動筆記本也需要在內網進行升級,而它們 ...

  2. html页面加空的行,html-插入高度较小的空白表行

    html-插入高度较小的空白表行 我有一个由标题行和几个数据行组成的表. 我想做的是在标题行和数据行之间创建一个空白行,但是我希望该空白行的高度小于其他行的高度(以便没有太大的间隙). 我该怎么做? ...

  3. 如何生成题注和表注目录

    有一些文章,例如某些学校的硕士论文要求必须有图注和表注的目录,下面我们就如何生成图注和表注进入话题. 下面我们以2013版本的word进行演示,首先我们打开word界面,将光标选中要插入图注或表注的地 ...

  4. 你是资讯控吗?——Web2.0智识管理简册

    题记: 我登陆QQ的频率从一周变成了一个月--需要聊天打发的时间越来越少,对话索然无味,头像晃动下欲拒还迎的姑娘也远不如社交网络上的头像相册更令人兴奋.与此同时,微博来了.说它来了显得有些不合时宜,因 ...

  5. Kmdtut 10---注册表

    转自:http://www.gomb.cn/?uid-2-action-viewspace-itemid-1457 10.1 注册表的结构 10.2 在驱动程序中访问注册表 10.3 Registry ...

  6. Vbscript编程5---注册表

    Vbscript编程5 注册表,修改注册表是编程的一个基本技能,脚本编程当然也不例外. 这里,我就不再讲解注册表的基本结构. 1.读注册表的关键词和值: 可以通过把关键词的完整路径传递给wshshel ...

  7. linux数据入表格,数据导入,导出 表操作

    一.数据的导入导出 1.数据导入:把系统文件的内容保存到数据库的表里 默认只有数据库管理冲数据库服务器本机登录数据库才有数据导入权限 表结构要与文件内容匹配. 把/etc/passwd文件的内容保存到 ...

  8. RegistryHelper-注册表辅助类

    using Microsoft.Win32;namespace PowerEasy.Software.OfficeConvertService {/// <summary>/// 注册表辅 ...

  9. 2 、效 率 的 认 识

    GQAL   2.1效率提高了,怎么没赚钱呢             --假 效 率 与 真 效 率    要创造更多的利润,除了彻底地消除前述的七种浪费之外,就是要提高效率.一般而言,所谓效率,就是 ...

  10. Windows与网络基础-19-注册表维护与优化

    目录 一. 注册表维护 1.1 注册表被破坏后的常见现象 1.2 注册表被破坏的原因 1.3 备份注册表 1.4 恢复注册表 1.5 注册表锁定和解锁 二.注册表优化 2.1 清除多余的DLL文件 2 ...

最新文章

  1. 索引超出了数组界限_还在用优先队列?来试试索引优先队列吧(优先队列amp;索引优先队列)...
  2. C++中vector的capacity和size的区别
  3. WINDOWS故障修复台 免去重装的烦恼
  4. apache常用的配置指令:ServerRoot
  5. Android --- 很好用的时间选择器
  6. 优先队列的数组实现(有序)
  7. jzoj4800-[GDOI2017模拟9.24]周末晚会【dp,循环重构】
  8. 前端学习(2384):element介绍
  9. python雪花算法生成id_理解分布式id生成算法SnowFlake
  10. Spring Cloud Nacos
  11. java中怎么判断依赖关系,在Maven 2中,我如何知道依赖性来自哪个依赖?
  12. VOIP侵蚀电信利益,未来最赚钱的行业.
  13. 360浏览器或chrome谷歌浏览器 打不开HTTPS网站,显示您的连接不是私密连接解决办法
  14. thinkphp框架环境部署
  15. flash mx拖拽实例_Flash MX 2004的注释添加器面板
  16. G711 G723 G729线路占多少带宽问题
  17. 4针串口线接法图_串口硬盘4针的小接口怎么样连接
  18. JMeter做http接口功能测试
  19. 利用cobbler 重装系统
  20. 【Paper】Neural Machine Translation by Jointly Learning to Align and Translate

热门文章

  1. 计算机i网络管理员证书四级,软考网络管理员试题练习(4)
  2. 今日干货:PDF转Word工具有哪些?
  3. Windows清理助手ARSWP
  4. 计算机学报范文,计算机学报论文
  5. STC8H开发(十四): I2C驱动RX8025T高精度实时时钟芯片
  6. Java实现简易版金山打字
  7. ThinkPad SL400使用手札
  8. Chrome 浏览器插件之监控网页地址
  9. 软件测试方法——单元测试、集成测试、系统测试、确认测试
  10. 导出windows密码技巧总结