深 入 认 识 Win95 注 册 表 (下) |
| 在上一期中,我们对Win95系统中为什么要引入注册表和注册表与.INI文件的关系进行了阐述,并简要介绍了注册表编辑器中6个主关键字的作用,本期我们对其中的几个主关键字作较为详细的介绍。 HKEY_CLASSES_ROOT关键字 该关键字由多个子关键字组成,具体可分为两种:一种是已经注册的各类文件的扩展名,一种是各种文件类型的有关信息。图1左窗格中的子关键字就是各种已经注册的文件扩展名。 注册表内登录的文件扩展名中,一部分是系统约定的扩展名,另一部分是由应用程序自定义的扩展名。应用程序只有把自定义的扩展名登录到注册表中,系统才能识别和关联使用有关的文档,即只有经过注册的扩展名,系统才能自动关联。 当选中某个扩展名关键字时,在窗口的右窗格中将显示出有关的键值。例如在图1里选中“.avi ”时,从其键值可以看出,对该扩展名将默认为动画文件(avifile)。在HKEY_CLASSES_ROOT 关键字中也包含了该类型文件的详细信息。仍然以avifile文件为例,移动滚动条可以找到子关键字“AVIFile”, 选中AVIFile可以看到其键值默认为“视频剪辑”,表示可以对.avi文件进行编辑、播放等操作。单击AVIFile左边的“+”号,可以看到如图2所示的树型子关键字。 第一个子关键字是“CLSID”,即“分类标识”,在选中它时可以看到其默认的键值,如图3所示。系统可用这个标识号来识别相同类型的文件。 在 HKEY_CLASSES_ROOT主关键字下也有一个子关键字“CLSID”,其中包含了所有注册文件的类标识。因此也可以通过类标识来查找相关文件的各种信息。图4即是通过类标识查找AVIFILE文件的例子。可以看到在该标识字下面还有10个子关键字,它们的键值也同样表示了AVIFILE文件的有关信息。 下面我们把AVIFile的全部子关键字展开,来看看它包含了哪些有关的信息。展开全部子关键字后的窗口如图5所示。 “Compressors”(压缩程序)下面的两个子关键字“auds”和“vids”分别给出了音频和视频数据压缩程序的类标识,通过这些类标识可以找到相应的处理程序。 “DefaultIcon”的键值为:“c:\pwin95\mplayer.exe,3”,表示文件的默认图标是mplayer.exe文件中提供的第3号图标。 把“DefaultIcon”的键值改为:“c:\pwin95\mplayer.exe,4”,则采用图6中的第4号图标作为.avi文件的图标。 “Extensions”的作用是通过文件扩展名识别数据文件。它的3个子关键字中,AVI表示AVI文件,AV和WAV表示音频文件。 “Insertable”是插入表。 “protocol”包含了执行程序和编辑程序的路径和文件名。 打开“StdExecute”(标准执行程序)下面的子关键字“Server”,可看到键值为:“c:\pwin95\mplayer.exe/avi”,即指定了执行程序的路径和文件名。 打开“StdFileEditing”(标准文件编辑程序)下面的子关键字“Server”,可看到键值仍然为:“c:\pwin95\mplayer.exe/avi”,即编辑程序的路径和文件名。 “verb”下面的3个子关键字0、1、2键值表示程序的工作状态,分别为“播放”、“编辑”和“打开”。“RIFFHandlers”表示相关文件句柄,包含了AVI和WAVE文件的类标识。 “shell”包含了执行“打开”和“播放”命令的程序路径和文件名。它们在各自的“command”中列出的键值分别为“c:\pwin95\mplayer.exe %1”和“c:\pwin95\ mplayer.exe/play/close %1”。 “shellex”中包含了“多媒体文件属性表”(AviPage)的文件句柄。 下面我们再结合修改快捷方式图标来说明如何使用注册表修改显示信息。 1.打开注册表编辑器,在 HKEY_CLASSES_ROOT 关键字下滚屏找到与快捷方式有关的子关键字“lnkfile”并选中它。如图7所示。 2.键名“IsShortcut ” 表示在桌面的快捷方式图标的左下角标注一个向上的小箭头,即 ,如果你不喜欢这个小箭头,可以采用下面的方法删除它:选中“IsShortcut”,然后打开“编辑”菜单,单击“删除”命令,将该项删除。关闭注册表并重启Win95,你将发现快捷方式图标上已经没有小箭头了 。 3.键名“NeverShowExt”表示在快捷方式图标下不显示文件扩展名。如果你希望显示扩展名,可以采用下面的方法把该键名改为“AlwayShowExt”:单击“NeverShowExt”,打开“编辑”菜单,单击“重命名”命令,输入新名。关闭注册表并重启Win95。你会发现快捷方式图标上已经加上扩展名了。 HKEY_CURRENT_USER关键字 从图8中可以看到,HKEY_CURRENT_USER下面有7个子关键字。其中除“RemoteAccess”外,其余6个都为系统预定义。 AppEvents 登录已注册的各种应用事件 Control Panel 与控制面板设置有关的内容 InstallLocationsMRU 安装路径的有关信息 keyboard layout 键盘设置信息 Network 网络设置信息 RemoteAccess 此项是安装IE4.0建立的子 关键字,包含该应用程序的 有关信息 Software 软件的有关信息 1.AppEvents子关键字 AppEvents子关键字包含了各种应用事件的列表。其下面又包含两个子关键字EventLabels(按字母顺序列表)和Schemes(按事件分类列表)。 从图9可以看出,Schemes是按照应用(Apps)和命名(Name)对事件进行分类的。在本系统中,Apps共分为 Default(缺省)、Explorer(资源管理器)、Mplayer(媒体播放器)和Norton Navigator(笔者安装的应用程序);Name一般情况下均采用Windows缺省值。在“控制面板”中打开“声音”对话框,你可以看到这些事件的中文列表,其内容与按照应用(Apps)来对事件分类的列表是一一对应的。 2.Control Panel子关键字 该子关键字所包含的内容与桌面、光标、键盘和鼠标等设置有关。改变它们的键值就将改变对应的工作环境或参数。图10为Control Panel的结构。 在图10中可以看到,Control Panel下面又有8个子关键字。根据系统配置和设置情况的不同,子关键字的数目也会不同。例如有的系统中没有“Mouse”关键字,并不是表示计算机中没有安装鼠标,而是指你从来没有对鼠标作过任何设置,系统完全采用默认值。 虽然Control Panel中的键值与环境和特性有直接关系,但很多参数的改变并不要求用户通过修改注册表来实现,而只需通过“控制面板”即可进行修改。也有一些环境特性的改变只能通过修改注册表来实现,例如,改变菜单的弹出延迟时间。 在Win95中,系统默认的菜单弹出延迟时间为400ms(随机器的性能不同,实际感觉到的延时可能有一定误差)。如要改变其缺省值,可在注册表编辑器的\ HKEY_CURRENT_USER\ Control Panel\desktop中增加一个键值名“MenuShowDelay”,通过改变其键值来改变菜单显示延时(如图10所示),键值的设定范围为0~1000(ms)。 Accessibility 这个子关键字包含了如图11所示的10个子关键字,多数子关键字在“控制面板”中都有对应的项。这些子关键字的键值名中一般都有一个“On”,当键值为0时,表示设置无效;键值为1时,表示设置生效。 Appearance 这个子关键字的键值中列出了可供选择的各种颜色和图案。可以在“控制面板”的“显示/外观”对话框的“方案”下拉菜单中,看到这些颜色和图案的中文名称。 cursors 这个子关键字的键值中列出了光标图案所在的文件路径。可以在“控制面板”的“鼠标/指针”对话框的“方案”下拉菜单中,看到这些颜色和图案的中文名称并进行设置。 desktop 这个子关键字的键值中列出了桌面和窗口中的各种部件,如:窗口边界、标题、图标、菜单、滚动条、消息框的长度、宽度和字体等数据。这些数据可以在“控制面板”的“显示/外观”对话框的“项目”下拉菜单中进行修改。下面再举一个只能通过修改注册表来实现的例子。 系统缺省设置,窗口在最小化和还原(或最大化)之间切换时,有一个平滑的变化过程(动画效果)。要取消这个动画效果,可以在\HKEY_CURRENT_USER\ Control Panel\desktop\windowmetrics中增加一个键值名“MinAnimat”,其键值设置为0即可。 注:为0为取消动画效果,非0则保留动画效果。 Input Method 这个子关键字的键值中登录了“输入方法”转换热键的有关数据。这些数据你可以在“控制面板”中打开“输入法”对话框中的“热键”标签进行修改。 International 这个子关键字的键值中登录了表示“上午”和“下午”的数据。这些数据可以在“控制面板”中打开“区域设置”对话框中的“时间”标签进行修改。 keyboard 这个子关键字的键值中登录了击键时的重复延时和重复速率。这些数据可以在“控制面板”中打开“键盘”对话框中的“速度”标签进行修改。 Mouse 这个子关键字的键值中登录了鼠标的双击速度和指针的移动速度。这些数据可以在“控制面板”中打开“鼠标”对话框中的“按钮”和“移动”标签进行修改。 上面以AppEvents和Control Panel这两个子关键字为例作了比较详细的讨论,限于篇幅,对其他子关键字就不再详细介绍了。读者可以按照前面所列出的子关键字的基本内容自己进行分析。 HKEY_LOCAL_MACHINE关键字 图12中,HKEY_LOCAL_MACHINE下面的子关键字有8个。其中“.mp2”是安装播放软件“XING MPEG”后定义的关键字,其余的是系统预定义关键字。下面我们先对预定义关键字作简单介绍。 Config 包含了有关显示字体、分辨率、显示点 距、颜色深度以及打印机型号等信息。 Enum 包含了系统当前配置的所有硬件设备的 信息。 hardware 包含了系统使用的浮点处理器、串口等 有关信息。 Network 包含了网络的有关信息。 Security 包含了安全设置的信息。 SOFTWARE 包含了系统软件、当前安装的应用软件 及用户的有关信息。 System 包含了系统的全部软件和硬件信息。 对于HKEY_LOCAL_MACHINE关键字,有两点应该说明: 1.根据计算机中硬件配置和安装文件的不同,在HKEY_LOCAL_MACHINE中的信息将有很大的差别(在其他的关键字中也会反应出这种差别)。 2.HKEY_LOCAL_MACHINE下面各个子关键字中包含的信息有很多是重复的,这样做的目的,只是为了浏览和编辑的方便。当然在注册表数据库中是不会重复的。 下面以笔者使用的5X86系统的Enum(枚举)子关键字为例,介绍它的结构和包含的信息。 由于该硬件系统配置简单,因此图13中列出Enum下面的子关键字只有8项。如果你的硬件系统采用的是新型的主板并具有更多的配置,在Enum下面将会出现更多的子项,如BIOS、声卡、解压卡等。如果你的硬盘分为多个逻辑盘,也会把这些逻辑盘作为子项列出。下面就图13列出的几个子项作进一步介绍。 1.ESDI子关键字 该关键字包含了硬盘的有关信息,图14为ESDI的结构。 由于本系统配置了两个硬盘,因此有两个子项“ROOT&*PNP0600&000000”和“ROOT&*PNP0600&000010”,分别表示C、D两个硬盘。在右窗格中显示出C盘的若干有关信息。子项关键字中的前缀“ROOT”表示它们是挂接在“根”下面的设备,你可以在ROOT子关键字中找到它们。 如果你在系统中安装了虚拟光驱,也将在本子关键字中出现,而不会在SCSI子关键字中出现。因为虚拟光驱实际上是硬盘的一个部分。 2.FLOP子关键字 登录了软盘驱动器的有关 信息。 3.HTREE子关键字 本系统没有使用。 4.Moniter子关键字 包含了系统监视器的有关 信息。 5.Network子关键字 包含了本系统安装网络的有 关信息。 6.PCI子关键字 包含了PCI总线和PCI设 备的有关信息。 7.ROOT子关键字 包含了系统根节点下面挂接的所有系统设备和外部设备的有关信息。例如,本系统中硬盘C为子关键字“ROOT&*PNP0600&000000”,就说明它是挂接在根节点下面的。在ROOT\PNP0600\0000中可以找到硬盘C的有关信息,如图15所示。 8.SCSI子关键字 登录了各种SCSI设备的有 关信息。光驱的有关信息一般也登录在此。 其他主关键字 上面我们介绍了3个主关键字的基本内容。其余的主关键字中,Hkey_User和Hkey_Current_User类似,Hkey_Current_Config和Hkey_Local_Machine类似,Hkey_DYN_DATA 的内容比较简单,只包含了系统运行中的动态数据,即系统硬件的当前状态和那些需要更新和检索的数据。限于篇幅,本文不再详细介绍,有兴趣的读者可自行分析。
|