注册表的文件关联及应用

喜欢使用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驱。

Unknow:作用于系统不能识别的文件类型,即没有注册的文件类型。

最基本的文件关联就谈到此处,下面来看看文件关联的应用。

应用之一:让MS-DOS方式无处不在。

经常用到DOS方式的朋友可能有些厌烦,因为每次进入DOS方式,都要选择“开始\程序\MS-DOS方式”。

利用文件关联,我们可以将MS-DOS方式添加到任何文件的“右键菜单”中,这样就省事多了,方法为:将注册表展开到HKEY_CLASSES_ROOT\*\shell分支。

(在所有文件的“右键菜单”中添加MS-DOS方式)新建主键“MS-DOS",置其默认值为“进入MS-DOS方式”,在MS-DOS主键之下新建command主键,置其默认值为:“C:\Windows\”。

另注册表展开到HKEY_CLASSES_ROOT\Folder\shell分支,(在所有文件夹的“右键菜单”中添加MS-DOS方式)设置同上。

应用之二:隐去快捷方式图标中的小箭头。

如果你觉得快捷方式图标中的小箭头有点障眼,那么利用关联,可以将之去掉,将注册表展开到HKEY_CLASSES_ROOT\lnkfile分支,将lnkfile主键之下的键值Isshortcut删除,再将注册表展开到HKEY_CLASSES_ROOT\piffile分支,将piffile主键之下的键值Isshortcut删除,即大功告成。

应用之三:用记事本来编辑bat文件。

有时想编辑bat文件,而习惯性地双击它,这一双击,并没有将它打开编辑,而是将它执行,让人甚为恼火。

利用注册表的文件关联,可以将之改变。

将注册表展开到HKEY_CLASSES_ROOT\batfile\shell分支,将shell主键的默认值由open改为edit即可。

应用之四:更改某类文件的默认图标。

以txt文件为例,将txt文件的图标改为“我的电脑”的图标。

将注册表展开到HKEY_CLASSES_ROOT\txtfile\DefaultIcon分支,将主键DefautIcon的默认键值改为:"C:\Windows\explorer.exe,0" 即可。

应用之五:为所有文件增加“打开方式”。

将注册表展开到HKEY_CLASSES_ROOT\*\shell分支,新建主键open_as,置其默认值为“选择打开方式”,在Open_As主键之下新建主键command,置其默认值为:"C:Windows\rundll32.exe shell32.dll , openAs_RunDll %1"应用之六:将“关机”加入到右键菜单。

将注册表展开到HEKY_CLASSES_ROOT\Directory\shell 分支,新建主键close,置其默认值为“关闭系统”,再在close主键之下,新建主键command,置其默认值为:"C:\Windows\rundll32.exe user.exe, exitwindows"以上六例应用,总体上能够概述文件关联的基本结构和基本框架,弄清了文件关联的结构与框架,自己再增加关联就是小菜一碟了。

只要你有兴趣,你可以将你的右键菜单加得满满的。

如果你想了解更深一层次的文件关联,那就请你参阅有关windows 注册表方面的书籍与资料,或与我联系,我的Email是amen.twty@。

在文章结束之前,还告诉大家一点小小的诀窍:那就是注册表在作过修改之后,很多场合需要重新启动才能生效。

这里我告诉大家一个不需要重启但又能快速更改注册表的方法:选择“开始\关闭系统”,在弹出“关闭系统”框之后,按Ctrl+Alt+Del 组合键,出现“结束任务”框,选择其中的“Explorer”,再单击“结束任务”,等待一会儿(10秒左右),就会出现一个“结束任务”确认框,点击“结束任务”按钮即可。

合集下载

文件关联程序

文件关联程序

⽂件关联程序当打开⼀个⽂件时,系统会⾃动找到打开它的程序。

我⼀直对此有点兴趣,今天终于在⾃⼰的程序中也实现了。

步骤是这样的,⾸先在注册表中注册我的程序和哪些⽂件格式(后缀名)关联,然后在程序中响应双击打开⽂件,因为启动程序的时候,MFC默认的是命令是FileNew。

不够以前我的程序是改成FileNothing,因为我的是MDI程序。

所以今天加了如果命令⾏传来⽂件路径就要把它打开。

也即是cmdInfo.m_strFileName不为空。

可是刚开始遇到⼀点⼩问题,因为路径会截断空格,⽐如"C:/Documents and Settings/桌⾯/draw1.sch"变成了"C:/Documents"空格之后被截断了。

后来我⽤::GetCommandLine()⾃⼰获取命令⾏中的⽂件路径。

那么就是在程序中添加如下语句。

1.注册关联⽂件BOOL CDesignSysApp::InitApplication(){/*..............你的语句................*/// 注册⽂件关联// strExe: 要检测的扩展名(例如: ".txt")// strAppName: 要关联的应⽤程序名(例如: "C:/MyApp/MyApp.exe")// strAppKey: ExeName扩展名在注册表中的键值(例如: "txtfile")// strDefaultIcon: 扩展名为strAppName的图标⽂件(例如: "C:/MyApp/MyApp.exe,0")// strDescribe: ⽂件类型描述char strAppName[MAXLEN];::GetModuleFileName(NULL, strAppName, MAXLEN);char *strExt = ".sch";char *strAppKey = "schfile";char strDefaultIcon[MAXLEN];// char *strDescribe = "sch";HKEY hKey;char strTemp[1024];if(ERROR_SUCCESS == RegCreateKey(HKEY_CLASSES_ROOT,strExt,&hKey)){RegSetValue(hKey,"",REG_SZ,strAppKey,strlen(strAppKey)+1);RegCloseKey(hKey);}sprintf(strTemp,"%s//DefaultIcon",strAppKey);if(ERROR_SUCCESS == RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey)){sprintf(strDefaultIcon, "%s%s", strAppName, ", 0");RegSetValue(hKey,"",REG_SZ,strDefaultIcon,strlen(strDefaultIcon)+1);RegCloseKey(hKey);}sprintf(strTemp,"%s//Shell",strAppKey);if(ERROR_SUCCESS == RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey)){RegSetValue(hKey,"",REG_SZ,"Open",strlen("Open")+1);RegCloseKey(hKey);}sprintf(strTemp,"%s//Shell//Open//Command",strAppKey);if(ERROR_SUCCESS == RegCreateKey(HKEY_CLASSES_ROOT,strTemp,&hKey)){sprintf(strTemp,"%s %s",strAppName, "%1");RegSetValue(hKey,"",REG_SZ,strTemp,strlen(strTemp)+1);RegCloseKey(hKey);}}2.打开⽂件BOOL CDesignSysApp::InitInstance(){/*.............你的程序..............*/CCommandLineInfo cmdInfo;cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing;ParseCommandLine(cmdInfo);if(cmdInfo.m_strFileName != _T("")){CString str = ::GetCommandLine();int nPos = str.ReverseFind('//');if(nPos != -1){str = str.Right(str.GetLength() - nPos - 1);}if(str != _T("")){cmdInfo.m_strFileName = str;cmdInfo.m_nShellCommand = CCommandLineInfo::FileOpen; }}if (!ProcessShellCommand(cmdInfo))return FALSE;}。

《计算机硬件与维护》课程注册表

《计算机硬件与维护》课程注册表

verb 子键
StdFileEditing\verb分支上,用于设置打开标准avi文件编辑程序时的工作状态。
该子键位于HKEY_CLASSES_ROOT\avifile\protocol\
另外,还有“Handler”和“Handlers”两个子键。
01
该子键位于HKEY_CLASSES_ROOT\avifile\Shell分支上,用于设置视频文件的外壳。
06
.doc 、 .wma、 .rm 、.dll
03
硬件设备说明
04
将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理:
01
应用程序和文件的关联
02
1.2 注册表的作用ຫໍສະໝຸດ 1.2 注册表的作用(续1)
HKEY_CURRENT_USER\RemoteAccess
状态属性
HKEY_CURRENT_USER\Environment
6.Shell 子键
该子键具有如下子键结构: HKEY_CLASSES_ROOT\avifile\Shell\Open\Command 它用于设置“打开”avi文件的程序。
(1) Open子键
该子键具有如下子键结构: HKEY_CLASSES_ROOT\avifile\Shell\Play\Command 它指定用于“播放”命令的程序
(2) vids子键
3.DefaultIcon 子键 该子键用于设置avifile的缺省图标。
该子键用于设置RIFF文件的句柄。在该子键下包含了AVI和WAVE两个文件的类标识。
4.RIFFHandlers子键(RIFF:资源交换文件格式)
该子键位于HKEY_CLASSES_ROOT\avifile\ RIFFHandlers\AVI分支上,用于设置AVI文件的类标识。

注册表的文件关联及应用

注册表的文件关联及应用

注册表的文件关联及应用喜欢使用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。

深入注册表之文件关联——文件关联认识篇

深入注册表之文件关联——文件关联认识篇

深入注册表之文件关联——文件关联认识篇谈起Windows的注册表,大家一定不会陌生吧?由于它的“高深莫测”和易损性,使不少CFAN视它为“禁区”,更不乏谈“表”色变之士。

其实小弟以前也未尝不是如此,即使是经过了X次当机后(修改注册表的结果),也只得了这么一丁点经验。

为了不让更多的CFAN重蹈小弟的覆辙,就把这一丁点经验告知大家。

其实关于注册表的文章,在各大报刊杂志上比比皆是,但多以“修改密技”见长,本篇自然不会再叙,而是针对注册表中最重要也是最让人头痛的文件关联部分,介绍其基本结构及应用技巧。

什么是文件关联文件关联是什么?简单地说,就是单击不同类型文件时,在鼠标右键菜单上看到的关联项目。

对于已注册的文件,会以不同的图标显示它们,双击它时会启动不同的关联程序,而所有这些设置信息都存放在注册表中,因此,只要掌握其基本结构和各键值项的设置,就能随心所欲地定义文件关联了。

注:下文所涉及注册表内容,除作特别说明处,均适用于Win9x;文中所例文件和路径,请按本机实际设置做相应修改。

另外请及时备份注册表,以防不测。

文件关联的基本结构首先运行Regedit.exe(注册表的基本结构知识,请参考98年第1、12、24期有关文章,这里不在细述),其中第一项【HKEY_CLASSES_ROOT】(以下简称ROOT)便是存放文件关联信息的根键,细心的朋友会发现,它和【HKEY_LOCAL_MACHINE\Software\CLASSES】键下的内容完全一样,其实这是系统为了方便访问而设置的动态映射,对其中任何一个操作,效果都一样(下文以ROOT根键为准)。

下面就让我们看看它的基本结构。

一个基本的文件关联,通常由以下两大主键构成(各主键的层次关系,请仔细参照例图)。

一扩展名键(如图1)A.键名:由“.”(无双引号)加上相应扩展名构成。

如“.Bat”。

在ROOT根键中,可以看到许多这种类型的主键。

默认键值:此值的作用是指向一个“标识键”,既起入口作用(下文将介绍);可以任意取值,但该值必须和“标识键”的键名相同,既它们之间应是一一对应的关系。

结合实训经验,简述注册表及其作用

结合实训经验,简述注册表及其作用

结合实训经验,简述注册表及其作用
注册表是Windows操作系统中的一个重要组成部分,它用于存储系统和应用程序的配置信息。

它可以被视为一个数据库,其中包含了大量的键值对,用来存储各种设置、选项和参数。

注册表的主要作用是保存系统的配置信息,包括硬件设置、软件安装信息、用户设置等。

它记录了系统的各种参数,如网络设置、显示设置、文件关联等。

通过注册表,系统能够在启动时读取这些配置信息,并根据其内容进行相应的初始化操作,从而使系统和应用程序能够正常运行。

注册表的另一个重要作用是提供了一个统一的地方来管理和修改系统的设置。

通过注册表编辑器,用户可以浏览和修改注册表中的键值对,以调整系统和应用程序的各种配置选项。

这使得用户能够根据自己的需求来个性化设置系统。

在实训经验中,注册表的使用经常涉及到修复系统错误、优化系统性能和解决应用程序问题等方面。

例如,当系统出现错误或应用程序无法正常运行时,可以通过修改注册表来修复问题。

另外,通过调整注册表中的参数值,还可以优化系统的性能,如加快启动速度、提升系统响应速度等。

总的来说,注册表在Windows操作系统中扮演着重要角色,它存储了系统和应用程序的关键配置信息,不仅能够保证系统正常运行,还提供了一个统一的地方来管理和修改系统的设置。

通过实训经验的学习和实践,我们能够更加深入地理解注册表的作用,并能够灵活运用它来解决问题和优化系统。

玩转Win7文件关联 文件与程序“联姻”

玩转Win7文件关联 文件与程序“联姻”

遇到一位朋友紧急求助:系统是windows7,这位朋友因为桌面没有OFFICE图标,又急着要用WORD,就把一个桌面图标右击,选择打开方式中选择了Word,而且没有把“始终使用这种程序打开同类型文件”前的勾去掉。

这一改之后,结果所有的快捷方式全变成了word文档了。

可以再改成别的,比如再改为记事本方式打开,但就是没有办法恢复原状。

这是一个文件关联的问题。

这样的问题在xp下根本就不可能发生,看来这个具体问题是Win7下的新问题。

网上大致搜了一下,发现出现这样问题的决不只是这位朋友,看来有解决的必要。

为了解决这个问题,我们需要先谈一下文件关联的一些基本的知识,这样才能使朋友们做到知其然而知其所以然。

文件关联,主要的是把文件类型与开放式命令关联起来。

而wind ows是通过文件的扩展名来识别文件类型的,这就首先需要把扩展名与文件类型关联起来。

assoc命令要修改扩展名与文件类型的关联,我们需要用到一个命令:assoc点开始,搜索,输入cmd,打开cmd,在cmd中输入:assoc /?回车。

我们可以得到关于这个命令的帮助。

assoc命令的作用有两个,一是显示扩展名与文件类型的关联,一是改写扩展名与文件类型的关联。

让我们以快捷方式的关联为例来讲述这个问题。

快捷方式的扩展名是.lnk,在windows下,这个扩展名一般是不会显现出来的,如果出现了,必是它的文件关联出问题了。

我们在cmd中输入:assoc .lnk ,回车后我们可以得到的命令结果是: .lnk=lnkfile 。

这个命令结果显示了:扩展名.lnk与文件类型lnkfile是相关联的。

凡是扩展名为.lnk的文件,都属于lnkfile这个文件类型。

现在让我们输入命令:assoc .lnk=lnk ,按下回车键,lnk这个扩展名与文件类型的关联就被改写了。

然后我们再输入命令:assoc . lnk ,按下回车键,我们得到的命令结果将是: .lnk=lnk ,这个结果显示了,扩展名.lnk已经是与文件类型lnk相关联,而不再是与lnkfil e相关联。

xp系统的注册表文件介绍

Settings\Application Data\Microsoft\Windows\Usrclass.dat文件。
其中HKEY_LOCAL_MACHINE\SAM 这个键对应着文件Sam,这个文件保存了本地帐号和组信息,如用户密码、组定义和与域(域,是指在一台或多台相关联的主机控制下的网络资源。)相关的信息。Windows 2000服务器系统作为域控制器,在Active Directory 中储存了帐号和组,Active Directory 是一个储存域范围的设置和信息的数据库。另外,SAM键包含的安全描述信息在缺省时,被配置成甚至管理者帐号都不能访问,但可以修改成管理者可读。sam文件是windows 的用户帐户数据库,所有NT用户的登录名及口令等相关信息都会保存在这个文件中。sam文件可以认为类似于unix系统中的passwd文件,不过没有这么直观明了。 HKEY_LOCAL_MACHINE\SECURITY 这个键对应着文件Security,这个文件储存了系统范围的安全策略和用户权限分配。 HKLM\SAM 链接到 SECURITY 的子键 HKLM\SECURITY\SAM 。缺省时,不可以察看 HKLM\SECURITY 或者 HKLM\SAM\SAM的内容,因为那些键的安全性设置成只允许系统帐号访问。 HKEY_LOCAL_MACHINE\SOFTWARE 这个键对应着文件Software,这个文件记录了系统中Windows本身的配置信息和第三方应用程序储存他们的系统范围的设置,如应用程序的文件和目录的路径,授权和有效期信息。 HKEY_LOCAL_MACHINE\SYSTEM 这个键对应着文件System,这个文件主要记录了引导系统时需要的系统范围的配置信息和Windows的硬件的安装信息,如装载哪些设备驱动程序和启动哪些服务。这些信息是启动系统的关键。 HKEY_USERS\.DEFAULT 这个键对应着文件Default,这个文件记录了当你新创建一个用户时,关于这个用户的缺省设置。 HKEY_CURRENT_USER 这个键对应着硬盘文件\Documents and Settings\username\Ntuser.dat,包含与当前登陆用户的性能和软件配置相关的数据。

注册表是什么意思注册表各部分有什么作用及功能

注册表是什么意思注册表各部分有什么作⽤及功能今天,为⼤家分析⼀篇⽂章“注册表键值简介,注册表各部分含义是什么?”,关于这个,希望新⼿的可以多学习⼀下,针对这个问题,进⾏了分析,那么⼩编就简单分析⼀下吧:与注册表有关的术语1、注册表:是⼀个树状分层的数据库(如图)。

从物理上讲,它是System.dat和User.dat两个⽂件;从逻辑上讲,它是⽤户在注册表编辑器中看到的配置数据。

2、HKEY :“根键”或“主键”,它的图标与资源管理器中⽂件夹的图标有点⼉相像。

Windows将注册表分为六个部分,并称之为HKEY_name,它意味着某⼀键的句柄。

3、key(键):它包含了附加的⽂件夹和⼀个或多个值。

4、subkey(⼦键):在某⼀个键(⽗键)下⾯出现的键(⼦键)。

5、branch(分⽀):代表⼀个特定的⼦键及其所包含的⼀切。

⼀个分⽀可以从每个注册表的顶端开始,但通常⽤以说明⼀个键和其所有内容。

6、value entry(值项):带有⼀个名称和⼀个值的有序值。

每个键都可包含任何数量的值项。

每个值项均由三部分组成:名称,数据类型,数据。

名称:不包括反斜杠的字符、数字、代表符、空格的任意组合。

同⼀键中不可有相同的名称。

数据类型:包括字符串、⼆进制、双字三种。

字符串(REG_SZ):顾名思义,⼀串ASCII码字符。

如“Hello World”,是⼀串⽂字或词组。

在注册表中,字符串值⼀般⽤来表⽰⽂件的描述、硬件的标识等。

通常它由字母和数字组成。

注册表总是在引号内显⽰字符串。

⼆进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的⼆进制数值,在注册表编辑器中,⼆进制数据以⼗六进制的⽅式显⽰出来。

双字(REG_DWORD):从字⾯上理解应该是Double Word ,双字节值。

由1-8个⼗六进制数据组成,我们可⽤以⼗六进制或⼗进制的⽅式来编辑。

如 D1234567 。

数据:值项的具体值,它可以占⽤到64KB。

注册表详解

注册表详解1.注册表的定义:PC机及其操作系统的一个特点就是允许用户按照自己的要求对计算机系统的硬件和软件进行各种各样的配置。

早期的图形操作系统,如Win3.x中,对软硬件工作环境的配置是通过对扩展名为.ini的文件进行修改来完成的,但INI文件管理起来很不方便,因为每种设备或应用程序都得有自己的INI文件,并且在网络上难以实现远程访问。

为了克服上述这些问题,在Windows 95及其后继版本中,采用了一种叫做“注册表”的数据库来统一进行管理,将各种信息资源集中起来并存储各种配置信息。

按照这一原则,Windows各版本中都采用了将应用程序和计算机系统全部配置信息容纳在一起的注册表,用来管理应用程序和文件的关联、硬件设备说明、状态属性以及各种状态信息和数据等。

2. 注册表的文件:注册表不是一个虚无的概念,在操作系统中,它最终要落实在某些具有”物理实在”意义的文件上.实际上,注册表的数据正是存储在某些特定文件中,在windows 9x中,他主要包含在windows目录下的system.bat和user.bat两个文件中(windows me还包含了classes.bat文件).这些文件无法进行直接编辑,读取和修改注册表文件中的配置信息,必须通过windows文件夹下的regedit.exe程序来进行,所以regedit.exe程序就被称为”注册表编辑器”但在windows2000/xp/vista下的注册表文件,都被称作”配置单元”,所谓的配置单元,其实就是注册表中的一组项,子项,和值,所有的配置文件(除了HKEY_CURRENT_USER以外)都位于windows\system32\config\文件夹中, HKEY_CURRENT_USER的配置文件位于windows\profiles\username\文件夹中,其中最重要的个文件没有扩展名,他们分别是:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM; .SAV后缀的文件为注册表的备份文件. .EVT 文件为系统日志文件.4.注册表的结构:注册表中的信息纷繁复杂,但是注册表对配置信息的组织结构确实层次分明的:打开注册表编辑器,左边窗格中的”我的电脑”下面显示的五大分支称为”预定义项”也就是我们常说的”根键”.”预定义项”代表了注册表一个主要部分的项.五大预定义项各自包括若干”项”,”项”下面又包含众多的”子项”,”子项”下面又包含众多的”子项”子向右边的窗口里包含若干的”值项”,也就是我们常说的”键值”注册表的结构如图5. 注册表的数据类型:注册表的值项包含多种不同的数据类型,WINDOWS XP的早期版本注册表只有三种键值的数据类型:字符串,二进制值和双字节值; windowsxp的晚期版本\2003增加到5种; VISTA/WINDOWS7又增加了一个QDWORD(64位)类型,实际的数据类型还要多很多,知识系统不允许我们来创建.*. 字符串值: 类型:REG_SZ*. 二进制值: 类型:REG_BINARY*. DWORD值: 类型:REG_DWORD*. 可扩展字符串值: 类型:REG_EXPAND_SZ*. 多字符串值: 类型:REG_MULTI_SZ6. 注册表预定义项拆解:注册表有五大预定义项,各自包含了不同的内容,同时彼此之间又有很大的紧密联系,了解五大预定义项包含的内容和其下面的主要项的功能,对于从整体上理解注册表的应用很有帮助.一.H KEY_CLASSER_ROOTRoot预定义项包含了启动应用程序所需的全部信息,其中包括:1.所有扩展名以及应用程序和文档之间的关联信息.2.所有驱动程序的名称3.当做指针的字符串,指向他们代表的实际文件4.类标识CLSID预定义项ROOT下面的项非常多,但是不要担心有多么的复杂.实际上,在这么多项中,大部分的项结构是一样的.1.*项这是HKEY_CLASSER_ROOT非常特殊的一项,*代表应用于所有文件类的定义,比如安装了WINRAR,后所有文件的右键菜单都有”添加到压缩文件”与之关联,如果按一般的方法去与所有文件关联,那就太麻烦了,而*项就具有简单完成关联所有文件类型的功能,只要在此项下添加类定义信息,可应用于所有类型的文件.2.扩展名项(如.bat等)HKEY_CLASSER_ROOT中最主要也是最多的想就是形如.bat .avi .bmp等扩展名项,以及它们所代表的batfile avifile bmpfile等类定义项,这两种项相互配合,完成对系统中所有文件扩展名的识别以及对此种扩展名文件的类型的定义(图标,用什么程序打开等).3.类定义项(batflie等)类定义项的名称必须和扩展名相的默认值定义的相同.否则它们就会直接失去联系.也就无法完成对文件的关联定义了.4.类定义项下的Defaulticon子项(例如batflie\Defaulticon):该类文件图标的路径和文件名.5.类定义项下的shell\open子项OPEN子项用来描述关联程序的显示名称,比如右键的”打开””编辑”等默认值缺省时,系统会自动将其程序的名称信息显示为打开,为不是OPEN如果设置.OPEN 下面的子项是COMMAND子项,用来关联指定打开该类型文件软件的路径.如果路径是长文件名(超过8个字符)则应该用””括起来,比如: “%SystemRoot%\system32\SoundRecorder.exe”如果关联的程序在WINDOWS文件夹, windows\SYSTEM32文件夹或者windows\SYSTEM内的话,则省略其路径,如C:\WINDOWS\NOTEPAD.EXE在与文件关联的话可直接写成”NOTEPAD.EXE”6.CLSID(类标识符)项:在注册表中,经常会看到长串字符的子项和值,比如:{00209FF-0000-00000-C000-xx-000000000046}它们都指向HKEY_CLASSER_ROOT\CLSID分支,既”类标识符”子项.这些CLSID究竟有什么用,可以做个试验:在桌面上建立一个文件夹,命名为控制面板.{21EC3AE2020-A-1069-A2DD-08002B30309D},可以发现文件夹变成了控制面板的图标,双击可以打开控制面板,这就是CLSID的功能,在WINDOWS中应用程序,控件,WINDOWS部件,编译器等几乎所有的项目都有他自己的CLSID, CLSID是某个不见于操作系统的连接,而且每一个程序的CLSID的值都是唯一的,,这样就可以保证此类文件的请求总是连接到改程序上面.7.DIRECTORY, DRIVE, FOLDER项(文件夹项)文件夹其实是一种特殊的文件对象,也需要关联程序才能对其操作,在ROOT根键下,关于文件夹的项目有3个,在操作时很容易混淆,下面是各项分别代表的文件夹类型(以上三个子项一般不要改动,了解一下即可):DIRECTORY: 仅作用于一般文件夹.(C:\windows; D:\穿越火线.等等)Drive: 仅作用于驱动器.(A: E:等)Folder: 作用与所有文件夹(以上两种以及,回收站,我的电脑,控制面板这样的特殊文件夹)以上三个项的结构和”类定义项”相同,我们可以为他们设置关联程序以及默认图标.二.H KEY_CURRENT_USER该预定义项包括了当前登录用户的配置信息,用户的文件夹,屏幕颜色和控制面板的设置都存储在这里,这些信息与用户的配置文件相关联.HKEY_CURRENT_USER(以下缩写为HKCU)包含如下主要的项:1.HKCU\Appevent项:Appevent项及其子项定义了系统特定的时间的名称已经发生该事件时的声音提示.HKCU\Appevent\Schemes下有两个子项APP(系统附带声音方案的具体设置)和NAMES(系统附带和用户自定义的声音方案)2. HKCU\console项:定义了命令提示符(CMD窗口)的一些特征.3. HKCU\Control panel项:里面配置的内容很多,全部是控制面板内的大部分设置,都保存在此项中,包括扶住功能选项,显示器,鼠标,屏保等信息.4.HKCU\Environment项:系统以及其他用户的临时文件存放目录5.HKCU\EUDC项:保存当前用户的字库用户使用造字程序所造的字库的位置信息保存在这个项的子项键值中.6.HKCU\Identities项:OUTLOOK配置信息.7.HKCU\KEYboard Layout项系统键盘的布局信息8.HKCU\PRINTERS项:打印机的配置信息9.HKCU\Sessioninformation项:该项下面有一个”PROGRAMCOUNT”键值项,设置为0偶可以禁止所有登录用户运行的程序数量.10.HKCU\sofeware项:包含了系统附带的各种软件以及安装在电脑中的其他软件的设置信息,都保存在这里,是应用最多的项之一.三.H KEY_LOCAL_MACHINE:该预定义项包含了特定于计算机的配置信息(用于任何用户),一下缩写为HKLM,他有5个独立的项.1.HKLM\HARDWARE项:其中包含了含有计算机硬件信息的子项,在每次重启系统时, HARDWARE项都将被重新创建,这样就很容易向系统中添加新硬件了,用户对此项的修改没有任何的意义也不会生效.2.HKLM\SAM项:这是一个关于安全账号管理的项,其中存储着用户信息和域的信息,无论哪种注册表,SAM中的信息都是不可访问的.3.HKLM\SECURITY项:这里的信息与本地安全性和用户权限有关,其中也含有SAM项的备份,也是无法访问的.4.HKLM\SOFTWARE项:包含了已经安装的系统软件和用户软件信息,也是注册表中最经常用到的项.5.HKLM\SYSTEM项:包含了系统启动,设备驱动程序,服务,和WINDOWS配置有关的信息.四.HKEY_USERS:该项包含计算机上的所有以活动方式加载的用户配置文件,HKEY_CURRENT_USERS其实也算是HKEY_USERS的一个子项.(一下缩写为HKU).1.HKU\.DEFAULT项:此项的作用是未来将要创建的新用户将针对此项内的设置来生成新的配置文件,包括环境,屏幕,声音等多种信息.2.HKU\S-1-5-18等项:分别代表系统内的各个账户或者安全组的信息.HKU\S-1-3-0:对应ADMINISTRA TORS账户HKU\S-1-5-18: 对应CREATOR OWNER账户(操作系统使用的服务账户)HKU\S-1-5-19:对应当前登录到系统中的所有用户HKU\S-1-5-20:对应网络服务组(network和Network Service)HKU\S-1-5-21-XXXXXXXXXXXXXX-XXXXXXXX(根据每台电脑不同,数字也是随机的):对应当前正在使用的账户.五.H KEY_CURRENT_Config该预定义项包含有关本地计算机在系统启动时使用的硬件配置文件的信息.,若果当前计算机中只有一个硬件配置,则其中的数据是和HKEY_LOCAL_MACHINE 中一样.如果用户有建立新的硬件配置的话,则可以再这里反映出来.(一般用户使用中是不会有弟2个硬件配置的,故此项使用的很少).。

win7注册表操作个人经验

win7注册表操作个人经验一、注册表操作方法:按下键盘的 win + R ,输入 regedit 即可打开注册表编辑器。

1 如果你是新手,那么建议你每操作一次前,都备份一下你要操作的项。

备份方法是:右击你要操作的该项,选择“导出”,然后保存到指定的位置。

如果操作错误了或误删了,就可及时恢复。

方法是直接双击你导出的reg文件,确认导入即可!2 注册表位置太多,又很难记,所以只有多做笔记和经常练习才能加强记忆。

对于不能记住的位置,使用菜单栏的收藏夹保存起来,已经就可以方便的找到了!3 如果不知道具体路径,只知道改值是多少,就可以使用菜单栏的“编辑”下的“查找”,勾选是否查找“项”、“值”、“数据”、“全字匹配”,然后系统将从你当前选择的位置开始向下查找。

如果这一次查找的结果不是你需要的,按键盘上的F3,查找下一个键值,直到找到你需要的或者查完都没有为止!(这个方法特别适合IE首页被修改绑定为某一网址的情况!)4 如果找到某个键值或项,却不能查看或修改。

首先右击该项,选择“权限”,查看该项是否设置了权限,如果权限中没有你的用户,那么自己添加上吧!其次,可能是杀毒软件或360安全卫士对注册表关键位置进程了读写保护,或者是病毒。

找到相关设置解决掉即可!二、win7注册表操作实例:1.右键清空回收站:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\empty] "CommandStateHandler"="{c9298eef-69dd-4cdd-b153-bdbc38486781}" "Description"="@shell32.dll,-31332""Icon"="shell32.dll,-254""MUIVerb"="@shell32.dll,-10564"[HKEY_CLASSES_ROOT\*\shell\empty\command] "DelegateExecute"="{48527bb3-e8de-450b-8910-8c4099cb8624}" [HKEY_CLASSES_ROOT\Folder\shell\empty] "CommandStateHandler"="{c9298eef-69dd-4cdd-b153-bdbc38486781}" "Description"="@shell32.dll,-31332""Icon"="shell32.dll,-254""MUIVerb"="@shell32.dll,-10564"[HKEY_CLASSES_ROOT\Folder\shell\empty\command] "DelegateExecute"="{48527bb3-e8de-450b-8910-8c4099cb8624}" [HKEY_CLASSES_ROOT\Directory\Background\shell\empty] "CommandStateHandler"="{c9298eef-69dd-4cdd-b153-bdbc38486781}" "Description"="@shell32.dll,-31332""Icon"="shell32.dll,-254""MUIVerb"="@shell32.dll,-10564"[HKEY_CLASSES_ROOT\Directory\Background\shell\empty\command] "DelegateExecute"="{48527bb3-e8de-450b-8910-8c4099cb8624}" [HKEY_CLASSES_ROOT\Directory\shell\empty] "CommandStateHandler"="{c9298eef-69dd-4cdd-b153-bdbc38486781}" "Description"="@shell32.dll,-31332""Icon"="shell32.dll,-254""MUIVerb"="@shell32.dll,-10564"[HKEY_CLASSES_ROOT\Directory\shell\empty\command] "DelegateExecute"="{48527bb3-e8de-450b-8910-8c4099cb8624}"2.去除右键新建公文包:Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\Briefcase\ShellNew]3.删除管理员权限右键菜单:Windows Registry Editor Version 5.00[-HKEY_CLASSES_ROOT\*\shell\runas][-HKEY_CLASSES_ROOT\exefile\shell\runas2][-HKEY_CLASSES_ROOT\Directory\shell\runas]4.右键添加取得管理员权限:Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\runas]@="获取管理员权限""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\*\shell\runas\command]@="cmd.exe /c takeown /f \"%1\" & icacls \"%1\" /grant administrators:F" "IsolatedCommand"="cmd.exe /c takeown /f \"%1\" & icacls \"%1\" /grant administrators:F"[HKEY_CLASSES_ROOT\exefile\shell\runas2]@="获取管理员权限""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\exefile\shell\runas2\command]@="cmd.exe /c takeown /f \"%1\" & icacls \"%1\" /grant administrators:F""IsolatedCommand"="cmd.exe /c takeown /f \"%1\" & icacls \"%1\" /grant administrators:F"[HKEY_CLASSES_ROOT\Directory\shell\runas]@="获取管理员权限""NoWorkingDirectory"=""[HKEY_CLASSES_ROOT\Directory\shell\runas\command]@="cmd.exe /c takeown /f \"%1\" /r /d y & icacls \"%1\" /grant administrators:F /t""IsolatedCommand"="cmd.exe /c takeown /f \"%1\" /r /d y & icacls \"%1\" /grant administrators:F /t"5.桌面快捷方式禁止添加快捷方式四个字:Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer] "link"=hex:00,00,00,00[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows\CurrentVersion\Explor er]"Link"=hex:00,00,00,006.为右键加上复制到和移动到:Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex] [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\Con textMenuHandlers][HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\Con textMenuHandlers\Copy To]@="{C2FBB630-2971-11D1-A18C-00C04FD75D13}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\Con textMenuHandlers\Move To]@="{C2FBB631-2971-11D1-A18C-00C04FD75D13}"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\AllFilesystemObjects\shellex\Con textMenuHandlers\Send To]@="{7BA4C740-9E81-11CF-99D3-00AA004AE837}"7.修改文档-音乐-图片-视频-收藏夹位置为d:\我的文档:Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer \User Shell Folders]"Favorites"=hex(2):44,00,3a,00,5c,00,11,62,84,76,87,65,63,68,5c,00,36 ,65,cf,85,\39,59,00,00"Personal"=hex(2):44,00,3a,00,5c,00,11,62,84,76,87,65,63,68,00,00 "MyPictures"=hex(2):44,00,3a,00,5c,00,11,62,84,76,87,65,63,68,5c,00,fe,5 6,47,\72,36,65,cf,85,00,00"MyMusic"=hex(2):44,00,3a,00,5c,00,11,62,84,76,87,65,63,68,5c,00,11,62,8 4,76,\f3,97,50,4e,00,00"MyVideo"=hex(2):44,00,3a,00,5c,00,11,62,84,76,87,65,63,68,5c,00,11,62,8 4,76,\c6,89,91,98,00,008.右键增加"用记事本打开":Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\Notepad]@="用记事本打开"[HKEY_CLASSES_ROOT\*\shell\Notepad\command]@=hex(2):6e,00,6f,00,74,00,65,00,70,00,61,00,64,00,20,00,25,00,31,00, 00,00======================================================================三、注册表最常见的终点操作路径:1 文件关联位置(以记事本关联为例):HKEY_CLASSES_ROOT\.txtHKEY_CLASSES_ROOT\txtfileHKEY_CLASSES_ROOT\txtfile\shell\open\command默认键值为(X为你的系统盘符):X:\windows\notepad.exe %12 用户登陆后的启动项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce Run下的键值会在每次登陆后执行里面的程序,而RunOnce里面的只执行一次,之后自动删除。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档