注册表的文件关联及应用

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


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

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


DefaultIcon主键,它的功能是定义该类文件的默认图标。

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


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

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

时间: 2024-09-19 08:18:14

注册表的文件关联及应用的相关文章

MFC的程序如何通过注册表修改文件的图标

问题描述 MFC的程序如何通过注册表修改文件的图标 MFC编程实现通过修改注册表来改变文档文件的图标?不通过注册表的方法也可以. 解决方案 通过修改hkey_classes_root里的文件关联即可换图标

Powershell实现从注册表获取本地关联文件的扩展名_PowerShell

适用于所有版本. 在先前的技巧中我们知道如何用一行命令获取多行注册表记录,这里,我们再来回顾下这段代码: 复制代码 代码如下: $lookup = Get-ItemProperty Registry::HKCR\.[a-f]?? |   Select-Object -Property PSChildName, '(default)', ContentType, PerceivedType |   Group-Object -Property PSChildName -AsHashTable -A

注册表-双击文件,会把什么参数传给打开方式?怎么使用这些方式。

问题描述 双击文件,会把什么参数传给打开方式?怎么使用这些方式. 我想用c++写一个类似于记事本的功能.做到双击就可以打开自定义类型的文件.可是参数传不过去,根本打不开呀. 解决方案 双击文件,会把调用的文件作为argv[1]传递给程序.你可以写个最简单的小程序测试下.先看看你的注册表的设置对不对. 解决方案二: 假设你说的是Windows平台:这和文件关联有关,文件关联是如何定义的,系统就怎么传输,文件关联有2个,一个是hkey_classes_root,一个是local_user下的clas

Oracle 卸载注册表残余文件清理

1. 开始->设置->控制面板->管理工具->服务停止所有Oracle服务. 2. 开始->程序->Oracle - OraHome81->Oracle Installation Products->Universal Installer卸装所有Oracle产品,但Universal Installer本身不能被删除 5. 运行regedit,选择HKEY_LOCAL_MACHINESOFTWAREORACLE,按del键删除这个入口. 6. 运行reged

文件关联及应用—注册表使用全攻略之二_注册表

注册表的文件关联及应用-注册表使用全攻略之二  喜欢使用Windows右键快捷菜单的朋友可能知道,当你选择了一个文件(或者是文件夹或是系统图标)再单击鼠标右键,系统就会弹出一个菜单,菜单上面的各种"功能"(或称"操作")任你选择,但是你是否注意到,当你安装一些应用软件之后,你的右键菜单是不是膨胀,以winzip为例,安装winzip之后,文件或文件夹的右键菜单当中就增加了功能选择项"Add to Zip"和"Add to xxx.zip

使用注册表文件(REG)添加、修改或删除Windows注册表项和值

1. 简介 我们平时大多采用Regedit注册表编辑器来实现对注册表的修改操作,但 是这种手工操作费时费力,当你要对多台PC统一修改注册表时,就要怨念了.并且在某些情 况下,如果注册表编辑器被禁用了,那么这种方法也会失效.于是,推荐大家使用REG文件来 快速完成注册表的修改. REG文件实际上是一种注册表脚本文件,Regedit注册表编辑 器可以使用REG文件来导入.导出注册表的子项和值.双击REG文件(即用Regedit.exe 注册 表编辑器程序运行该文件)即可将其中的数据导入到注册表中.我

无法显示隐藏文件夹(修改过注册表也无效)的解决方法 附注册表文件_注册表

显示隐藏文件的通法: 正常情况下,按照如下顺序操作即可:打开"我的电脑"的"工具"菜单--"文件夹选项",在"查看"标签里,选择"显示所有文件和文件夹",并找到"隐藏受保护的操作系统文件(推荐)",将前面的勾去掉.如下图所示: 被病毒修改注册表后导致无法显示隐藏文件的解决方法: 如果是由于病毒所导致的,则有很多种情况,这里说一下较常用的两种方法. 法一:打开注册表编辑器,进入注册表项:H

找回Windows Vista桌面的IE7图标的方法与注册表文件_Vista

在Windows Vista中,不知道微软出于什么考虑,取消了长期以来一直存在于Windows桌面中的Internet Explorer图标,这让许多用户感觉很不习惯.虽然我们可以在桌面上创建IE的快捷方式,甚至可以通过移除IE快捷方式图标中的箭头来使之更像"传统"Windows 桌面的中IE图标,但是,但功能上的不足如无法再像以前那样通过IE图标的右键属性来更改IE设置仍让人感到不便. 本文介绍一个如何在Windows Vista桌面中找回传统的IE图标的技巧. 找回Windows

对注册表进行编辑的三种途径_注册表

了解了关于注册表的基本内容之后,我们就可以正式进入我们所要讨论的话题了:对注册表进行编辑修改!一般来说,要想对注册表进行增.删.改,可以有以下三种途径: 第一种途径:直接修改(最不安全,但最直接最有效) 就是通过注册表编辑器直接的来修改注册表的键值数据项,这样做会避免在注册表中留下垃圾(虽然都很小,但越来越多会拖慢系统速度),但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎. 注册表编辑器是一个可以让你改变系统注册设定的高级工具WIN98注册表编辑器的常用操作注册表编辑器是一