| 网站首页 | 绿色软件 | 安全中心 | 屏保中心 | 源码中心 | 电子书库 | 教程库 | 图片库 | 资料库 | 论坛 | 笑话 | 手机 | 算命 | 绿站旧版 | 返回总部 | 
您现在的位置: 绿色软件站 >> 教程库 >> 绿化室 >> 绿化相关 >> REG知识 >> 文章正文
注册表的文件关联及应用—注册表使用全攻略之二           ★★★
注册表的文件关联及应用—注册表使用全攻略之二
作者:佚名 文章来源:onegreen.net 点击数: 更新时间:2008-5-13 0:11:49

喜欢使用Windows右键快捷菜单的朋友可能知道,当你选择了一个文件(或者是文件夹或是系统图标)再单击鼠标右键,系统就会弹出一个菜单,菜单上面的各种“功能”(或称“操作”)任你选择,但是你是否注意到,当你安装一些应用软件之后,你的右键菜单是不是膨胀,以winzip为例,安装winzip之后,文件或文件夹的右键菜单当中就增加了功能选择项"Add to Zip"和"Add to xxx.zip",如图一,看到这个变化,我们不禁要问,这些选择项是怎么加入的,可不可以自己来添加。带着这些问题,我们再来看Windows的文件关联。 

图一

  什么是文件关联呢?通俗地说,就是选择不同类型的文件时,在其右键菜单上显示的各功能项。每个功能项即对应一个关联。选择了某一功能(操作),系统就去执行相应的处理程序。至于对什么文件的什么操作对应什么样的处理程序,那都记录在系统注册表中。因此,要真正弄清文件关联,必须深入研究注册表。这个问题解决了,我们就可以利用注册表随心所欲地为文件建立,修改,删除关联。

  既然关联信息都写在注册表中,那么它在注册表中又是怎样构成的呢?我们不妨打开注册表,观察根键HKEY_CLASSES_ROOT之下的各个主键。(这样或许更易说明这一点)你是不是看到了很多前面有一个点(.),后面好象是文件扩展名的主键,如图二所示

图二

如.bat,.txt,.lnk,.bmp等。我们把这一类的主键称之为“扩展名主键”,每个扩展名主键都有一个默认键值。如:主键.bat的默认值为batfile; .lnk主键的默认值为lnkfile。举了这两个例子,你是否看出了其中的规律。即:若“扩展名主键”名为.xxx(xxx为某一类文件的扩展名),那么它的默认键值就为xxxfile。当然并不是所有的默认值都是这样,也可能多个主键对应同一默认值。比如:主键.jpeg和主键.jpg,它们的默认值jpgfile;.html和htm的默认值都为htmlfile。为什么要说这么多的扩展名主键的默认值呢?其中原因且听我慢慢道来。这个默认键值的作用就非同小可了,它可是文件关联的桥梁和纽带,是它将文件的类型(以扩展名来标识文件类型)与文件的关联联系起来。不信,你可以将某一“扩展名主键”的默认键值乱改一通,你就会发现,该类文件的许多关联项在右键菜单中消失了。既然这个重要的默认键值起了一个桥梁的作用,那么桥梁的另一端——文件的关联又是如何定义的呢?我们继续看注册表,让它来给我们解释。依然是在HKEY_CLASSES_ROOT根键之下。我们可以看到该根键之下有如下主键。如:batfile,txtfile,lnkfile 等。(如图三)

图三

这些主键好象都是刚才我们所说的“扩展名主键”的默认值。不错,上述默认值在此处正好变成了主键名——这就是桥梁。我们把这一类的主键称为“标识主键”。一般而言,在“标识主键”之下有以下几个重要主键:(如图四) 

如图四

 DefaultIcon主键,它的功能是定义该类文件的默认图标。
Shell主键,它的功能是本文讨论的中心——文件关联之“命根”所在。文件的各种关联都寄生在此“根”之下,正是它定义了该类文件与多个程序相关联。它的默认值也很有用,你是否还记得双击文件可以将文件打开(对于已注册的文件),这种打开就是利用了系统注册表所设定的默认打开方式,即由shell主键的默认键值来控制。它之下的每个主键,都可称作是“关联主键”(如图四)。“关联主键”的键名是任意的(建议用英文),它的默认键值也是我们感兴趣的。因为这一默认键值会直接显示在右键菜单中,并且每个“关联主键”之下都有一个command主键,这个主键定义的就是“该关联对应的执行程序”。如图五所示,到此文件关联已昭然若揭。

图五

  下面我们就以.reg文件(注册表的脚本文件)为例来说明其关联过程。

  首先.reg文件在HKEY_CLASSES_ROOT根键之下有一个“扩展名主键”。.reg其默认值为regfile,说明reg类型文件关联的主键是regfile。再在该根键之下找“标识主键”regfile,regfile主键之下有一个DfaultIcon主键,作用是定义reg文件的默认图标。其默认键就是图标的全路径文件名。如: C:\windows\regedit.exe,1(表示的是regedit.exe中的第2个图标)。regfile主键之下还有一个上文称之为“命根”的主键shell,reg文件的关联就记录在shell之中。下面我们就为regt建立一个关联。步骤为:在shell主键之下,新建主键xxf(名任意),置其默认值为:“徐喜峰的文本编辑器”,再在xxf主键之下新建主键command,置其默认值为C:\Windows\Notepad.exe %1,该默认值的意义为:用记事本来打开当前reg文件。若没有%1参数,则只运行记事本程序,而不打开当前文件。设置完毕,你再看看reg文件的“右键菜单”,是不是多了一个“徐喜峰的文本编辑器”选项(如图六),爽吧!~


图六

以上所说的只是作用于普通文件的关联,然而在Windows中,除了文件,还有文件夹及特殊的文档(如我的电脑,驱动器,回收站等)。那么这些又该如何设置关联呢?那就请大家记住在HKEY_CLASSES_ROOT根键之下还有以下几个重要的系统关联主键:

  *:作用于所有文件,它与“标识主键”的关联方法一样。
  Directory:作用于一般文件夹。
  Folder:作用于所有文件夹,包括特殊文件,如:控制面板,回收站等。
  Drive:作用于驱动器,如A驱,B驱,C驱。

[1] [2] 下一页

文章录入:onegreen    责任编辑:onegreen 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口


    相 关 信 息
    最 新 文 章
    热点推荐
    最 新 热 门
    最 新 推 荐
    相 关 文 章
    利用WindowsAPI函数和注册表获取系统信息
    MS-DOS方式下对注册表的编程
    用注册表给应用程序加口令
    用VB函数轻松访问系统注册表
    在VB中调用API操作注册表
    VB4.0对注册表操作的命令
    注册表数据结构(一)
    注册表数据类型(二)
    注册表中几个对编程特别有用的地方
    系统瘦身:修改注册表删除多余“脂肪”