一、Windows注册表
    1. 什么是注册表
    注册表是Windows的一个内部数据库,是一个巨大的树状分层数据库。它容纳了应用程序和计算机系统的全部配置信息、系统和应用程序的初始化信息、应用程序和文档的关联关系、硬件设备的说明、状态和属性以及各种状态信息和数据。注册表中存放着各种状态信息和数据。注册表中存放着各种参数,直接控制着Windows的启动、硬件驱动程序的装载以及一些Windows应用程序的运行,从而在整个Windows系统中起着核心作用。它包括如下一些内容:
    1)软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据;
    2)联网计算机的整个系统的设置和各种许可、文件扩展名与应用程序的关联关系,硬件部件的描述、状态和属性;
    3)性能记录和其它底层的系统状态信息,以及其它一些数据。
    2. 注册表文件
    Windows将所有注册表存入两个文件System.datUser.dat中。它们是二进制文件,不能用
文本编辑器打开查看。它们存于Windows目录下,具有隐含、系统和只读属性。System.dat包含了计算机特定的配置数据,如安装的硬件和设备驱动程序的有送信息等。User.dat文件的位置在以某个用户名登录时,其位于c:\windows\profiles\用户名目录下,系统同时在c:\windows目录下保留了一个缺省的User.dat文件,以备新用户使用。
    3. 注册表的六个根键
    运行Windows目录下的注册表编辑器“Regedit”,我们可以看到如图1所示的注册表编辑器窗口,它分成左右两个窗口,左窗口显示的是注册表的根键,这样的根键共有六个,字母都是大写的,并以“HKEY_”为前缀,这是由Win32 APIRegistry函数中关键字的符号变量所决定的。
    注册表Registry采用层次结构,类似于目录,可以一层层地展开,从顶层起,依次为:Registry根键子键键值。
    根键:根键类似于硬盘根目录下的目录项。
    子键:子键类似于硬盘上的子目录。
    键值项:键值项类似硬盘上树型目录的末端文件,子键可以包括一个或多个键值项。键值项由键值名、数据类型和键值三部分组成。
    键值类型:Registry中有如下三种键值类型:DWORD值,只允许一个键值,并且必须为1-816进制数据(即双字);字符串值,只允许一个键值,并且作为要存储的字符串来解释;二进制值,只允许一个值,是16进制数字串,每对作为一个字节值解释。
    注册表中,六个根键的情况如下:
    [HKEY_CLASSES_ROOT]
    这个根键记录的是Windows 9x操作系统中所有数据文件的信息,主要记录不同文件的文件扩展名和与之对应的应用程序之间的关联,当我们双击一个文档时,系统就可以通过这些信息来启动相应的应用程序。这里存放的信息与“HKEY_LOCAL_MACHINE\SOFTWARE\Classes”分支存放的信息一致,我们可以通过资源管理器下的查看”\“文件夹选项中的文件类型标签来进行编辑。
    [HKEY_CURRENT_USER]
    该根键是我们平时修改最多的根键之一。它包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码。用户登录Windows 98时,其信息从“HKEY_USERS”中相应的项拷贝到“HKEY_CURRENT_USER”中。它和下面的“HKEY_U
SERS”实际是互相包容的,“HKEY_USERS”中包含有“HKEY_CURRENT_USER”的内容,这两个根键中的内容一般可以通过控制面板来修改。
    [HKEY_LOCAL_MACHINE]
    它存放的是用来控制系统和软件的设置信息,下面有八大子键:“Config”子键包含了有关字体、分辨率、显示点距、颜深度以及打印设备的有关信息;“Driver”子键包含了显示驱动程序和打印机驱动程序的信息;“Enum”子键包含了系统当前配置的所有硬件设备的有关信息;“Hardware”子键包含了系统使用的浮点处理器、串口等有关信息;“Network”子键包含了网络方面的有关信息;“Security”子键包含了安全设置方面的信息;“Software”包含了系统软件和当前安装的应用软件及用户的有关信息;“System”包含了系统的全部软件和硬件信息,最好不要去改动。
    该根键也是我们平时需要修改最多的根键之一,在它下面的八个子键中又以“Software”子键的手动修改频率最高,“HKEY_LOCAL_MACHINE”下面的所有子键内容都存放在“Windows”目录下的“system.dat”注册表文件中。
    [HKEY_USERS]
    这个根键中保存的是本地计算机口令列表中的用户标识和密码列表。每个用户的预配置信息都存储在“HKEY_USERS”中,实际上,所有这些信息都存放在“Windows”目录下的“User.dat”注册表文件中。“HKEY_USERS”也是远程计算机访问的根键之一。
    [HKEY_CURRENT_CONFIG]
    我们也许有印象,在系统属性性能中有个硬件配置文件选项卡,我们可以通过该项来创建多重配置。“HKEY_CURRENT_CONFIG”这个根键正是存放当前配置文件所有信息的,如果你在硬件配置文件对话框窗口中创建了多重配置文件,那么该根键中就会有相应的多种硬件配置信息。
    [HKEY_DYN_DATA]
    这里保存了系统运行的动态数据,它反映出系统的当前状态,即使是在同一台计算机上,每次运行时的内容都是不一样的,这部分内容系统从不备份,它只是在Windows 9x每次启动时才会自动生成放在内存中,因此,此根键下的信息没有放在注册表中。
    虽然在注册表中,六个根键看上去处于一种并列的地位,但事实上,“HKEY_CLASSES_ROOT”“HKEY_CURRENT_CONFIG”中存放的信息都是“HKEY_
LOCAL_MACHINE”中存放信息的一部分,而“HKEY_CURRENT_USER”中存放的信息只是“HKEY_USERS”存放信息的一部分。“HKEY_LOCAL_MACHINE”包括“HKEY_CLASSES_ROOT”“HKEY_CURRENT_USER”中的所有的信息。在每次系统启动后,系统就映射出“HKEY_CURRENT_USER”中的信息,使得用户可以查看和编辑其中的信息。
    实际上,“HKEY_LOCAL_MACHINE\SOFTWARE\Classes”就是“HKEY_CLASSES_ROOT”,为了用户便于查看和编辑,系统专门把它们作为一个根键。
    4. 注册表维护
    注册表维护非常重要,如果注册表受到了破坏,轻者使Windows在启动的过程出现异常,重者可能会导致整个系统瘫痪。因此正确地认识、使用,特别是及时备份/恢复注册表,对Windows用户来说就显得非常重要了。
    Windows 98中,取消了Windows 95中每次开机时自动以System.da0User.da0为名的两个文件来备份注册表数据的功能,用一个以“.cab”cabinet)作后缀的压缩文件作为注册表备份文件,该备份过程是由Windows 98系统自动完成的。一般说来,当Windows 98安装好后,会在启动时自动运行/autorun,目的是每天备份一次注册表。自动将系
统中原有的注册表信息,包括“System.dat”“User.dat”“System.ini”“Win.ini”这四个文件都压缩成“cab”格式的文件,以“rb000.cab”“rb001.cab”之类文件名保存在“Windows\Sysbackup”目录下(该目录是隐藏的)。你可以选择开始”\“程序”\“附件”\“系统工具”\“系统信息中的工具项来运行系统配置实用程序(或直接通过开始”\“运行,输入“msconfig”来运行系统配置实用程序),点击其中的启动标签,查看该程序是否运行。倘若该命令没有被运行,则运行注册表编辑器,在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”主键下新建一个字符串值,键值为“C:\\autorun”(假设Windows 98安装目录为“C:\Windows”)。这样,Windows 98就会在每天第一次启动时自动备份注册表,以文件名“rb00*.cab”的形式存放在“Windows\Sysbackup”目录下,默认情况下Windows 98自动备份最近5次注册表内容。
    当因注册表故障导致系统无法启动时,可重新启动机器进入MS-DOS状态,键入“scanreg /restore”命令,这时屏幕上显示最近备份的5个注册表备份文件,根据备份时间选择最近的一个注册表备份文件恢复,重新启动机器看是否正常,如故障未能排除,可重复以上步骤选备份时间其次的一个备份文件重新恢复,一般来说总能到一个注册表备份文件来恢复系统。
当然,注册表备份与恢复的方法很多,如将“Windows”子目录下的“System.dat”“User.dat”两个文件直接备份,待故障时恢复或利用注册表编辑器的导出与导入功能来恢复系统,但笔者认为利用系统每次开机时的自动备份文件恢复效果更好、更可靠。
二、利用注册表加强系统保密
    每个人都有一些自己个人的重要文件保存在电脑中,有时并不希望他人看到。而在实际情况中,我们有时不得不和别人同用一台机器,特别是在办公室的公共用机;即使是自已的个人电脑有时也有被他人偶尔一用的情况。为了防止别人窥见您电脑内的一些重要文件和数据,在电脑中留下一块属于自己的隐秘园地,用来保存一些不便为他 人所知晓的个人文档,这就需要对电脑系统以及电脑中的文件和数据进行加密或隐藏处理。下面介绍几种通过修改注册表来对个人文件和数据保密的方法。
进入注册表
    *特别提醒:在修改注册表前务必做到先备份再修改
    1. 利用登录方式为系统保密
    大家都知道,Windows 98在启动时和注销后,会要求用户输入用户名和密码,但是只要点取消就可以进入,并不能阻止非授权用户的使用。其实,在Windows 98之后的版本中已经有了完善的安全机制,只是在默认情况下没有启用。
    1)修改注册表。运行“regedit”打开注册表编辑器,打开“HKEY_LOCAL_MACHINE\ Network\Logon”,在右边间接新建一个DWORD值,改名为“MustBeValidated”,双击它,将值改为“1”
    2)将登录方式改为“Microsoft友好登录。打开控制面板”\“网络”\“配置,在主网络登录下选取“Microsoft 友好登录,然后按确定退出。如果在主网络登录中没有“Microsoft 友好登录项,可点添加”\“客户”\“添加”\“Microsoft”来添加“Microsoft友好登录项。
    3)建立用户。在控制面板中,点击用户”\“下一步,在添加用户窗口中输入新用户名,再点击下一步后输入密码(可以立即输入密码,也可以留到用户登录后自己输入或修改密码),再确认密码,这时出现个性化设置窗口,点击下一步忽略,最后按完成退出。
    至此,对Windows的修改完成。重新启动机器,出现登录窗口,点取消Windows显示相应信息,拒绝非法用户的使用,只有那些在机器上有用户名的人才能使用机器。
    我们还可以在登录窗口中添加一些提示信息,告诉非法用户不必白费劲。方法同样是修改注册表:打开“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Winlogon”(如果没有就创建它),在右边新建一个字符串值,改名为“LegalNoticeCaption”,然后双击新建的字符串名,把它的值设为提示信息的标题, 比如特别提醒;再新建一个字符串值,改名为“LegalNoticeText”,将它的值设为提示信息的内容,比如闲人免进。这样,提示信息就设置好了。现在,我们重新启动机器,会看到闲人免进的提示信息,按确定后,出现用户名和密码输入窗口,当用户输入的用户名和密码准确无误后方可进入Windows 98,否则将被拒之门外。