远望资讯·《新潮电子》99年第二期


注册表的双重入口问题

  在注册表中经常出现双重入口(分支),例如,有一些在HKEY_CLASSES_ROOT中的键同样会在HKEY_LOCAL_MACHINE中出现。
  如果这些相同的分支出现在两个不同的根键中,那么,哪个根键有效呢?
  注册表的子键都有严格的组织。某些相同的信息会出现在超过一个的子键中,如果您只修改了一个子键,那么该修改是否作用于系统依赖于该子键的等级。一般来说,系统信息优先于用户等级。例如,一个设置项同时出现在HKEY_LOCAL_MACHINE和HKEY_USER子键中,通常由HKEY_LOCAL_MACHINE中的数据起作用。要注意的是,这种情况只发生在您直接编辑注册表时。如果您从“控制面板”中更改系统配置,则所有出现该设置项的地方均会发生相应的改变。

  例如,您可以通过注册表设置文件关联,即将一个带有特殊后缀的文件连接到一个应用程序上。在注册表中,有四个子键都保存了文件管理的数据,它们分别是:HKEY_CLASSES_ROOT、HKEY_CURRENT_USER、HKEY_LOCAL_MACHINE、HKEY_USER。在缺省情况下,所有后缀为1ST的文件都被连接到记事本程序(Notepad)上。如果您在Windows资源管理器双击该后缀的文件,则系统将激活记事本,同时将此文件调入编辑。但是您也可此文件关联从Notepad改为Lotus Ami Pro(这也是一个字处理程序),则您在双击后缀为1ST的文件时,将激活Lotus Ami Pro程序,同时编辑此文件。但是,如果您在直接编辑注册表时只修改一个子键,则会出现如下四种情况:

  ● 如果只修改HKEY_CLASSES_ROOT中的1ST项,则在双击1ST后缀的文件时将激活Lotus Ami Pro。
  ● 如果只修改HKEY_CURRENT_USER中的1ST项,则在双击1ST后缀的文件时将激活Notepad。
  ● 如果只修改HKEY_LOCAL_MACHINE中的1ST项,则在双击1ST后缀的文件时将激活Lotus Ami Pro。
  ● 如果只修改HKEY_USER中的1ST项,则在双击1ST后缀的文件时将激活Notepad。

  在上面的例子中,HKEY_CLASSES_ROOT子键和HKEY_LOCAL_MACHINE子键看起来在控制文件关联上相互独立,这似乎有些自相矛盾,但是,要知道HKEY_CLASSES_ROOT根键就是HKEY_LOCAL_MACHINE\Software\Classes,因此,在改变HKEY_CLASSES_ROOT根键就是改变HKEY_LOCAL_MACHINE。


远望资讯版权所有

Next-->page>>回上一页,看更多资料