注册表清理

来源:百度文库 编辑:神马文学网 时间:2024/04/27 20:05:25
/**/

  注册表清理2008年03月29日 星期六 18:17 注册表清理 2007-09-02 17:19 由 于用户在计算机使用过程中可能经常添加或删除应用程序,而且系统中初始安装完后就自带的一些功能可能对我们而言并不需要,或者经常上网冲浪的朋友可能会遇 到恶意网站,强迫向注册表中添加一些项,不断骚扰无辜的用户。这样一来,注册表中就会存有多余的子键或数值,这对使用而言可能会造成一些由混乱导致的错 误,如原来的应用程序卸载后注册表中的子键并没有删除,如果它在启动时有相关的数值,那么计算机启动时就可能提示找不到某某文件等,如果后来安装的替代原 先程序的替代品中恰有在注册表中相同位置、并且同名的子键,就可能造成混乱。而且,就算这些情况都没有发生,多余的注册表子键也会造成浪费注册表空间,降 低运行速度等不利。

现在,我们就来看一下清理注册表基本的着手处:



删除多余的DLL文件:

DLL文件即动态数据链接库,在安装和卸载软件时,在C:WINDOWSSYSTEM32目录下会留有一些DLL垃圾文件,这些文件会占用很多磁盘空 间,从而降低系统运行速度。那么我们怎么判断它是有用的DLL文件还是垃圾呢?删除垃圾DLL文件方法如下:
  • 打开注册表编辑器。
  • 展开HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionSharedDLLs子键,如图所示。


该子键下的项目即是应用程序安装完毕后向注册表中添加的共享DLL信息,每个DLL文件的键值都表明了共享该DLL文件的应用程序数目(即图中最右侧 括号中的那个数字)。在卸载这些应用程序时,就会弹出提示框“XX文件被其他文件共享,是否确定删除”。这里,如果某个DLL文件对应的数值为0,即表示 已经没有程序应用这个DLL文件了,这就是垃圾DLL文件了,直接将它删除即可。

另外,您也会在这里发现一些以前使用过,但是现在已经删除的文件路径。它们对应的值可能不是0,但也一样可以将其删除。

http://www.it.com.cn/f/edu/048/18/17060.htm

清理安装、卸载应用程序的垃圾信息:

大多数的应用程序都自带卸载程序,或者能够为[控制面板]中的[添加/删除程序]提供卸载信息。但有时候,卸载的信息或文件被破坏,造成无法调用卸载向 导;或者一些用户不懂得使用[添加/删除程序],认为不需要的东西只要选中该程序的文件夹,直接点[删除]即可。这样,就会导致注册表汇中有关该程序的信 息仍然存在,主要包括一些生产商、ID号、用户名等。这些无用的信息日积月累,会造成注册表体积庞大。其实,用户可以通过注册表编辑器直接将它们删除。

  它们位于HKEY_CURRENT_USERSoftware以及HKEY_LOCAL_MACHINESoftware子键下,如果是微软出品的一系列软件则包含在Microsoft主键中。只要确信该软件已经被删除,就可以将其键值全部删除。

清理系统软件在安装运行中产生的无用的信息:

通常系统软件是面向世界所有国家的地区用户的,为满足不同地区的用户需要,系统软件中设置了多种时区选择、多种语言代码、多种键盘布局方式和多种驱动程 序等。但只要您是某个地区的用户,只需要保留自己使用的那部分信息就可以了,其它的信息都是用不着而且每次查看起来又显得非常罗嗦。将这些无用的信息清理 掉可以减小注册表体积,加快系统运行速度。
  • 删除多余时区:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsNTCurrentVersionTime Zones分支下保存着各种时区设置,打开后只需保留北京时间China Standard Time即可。




  • 清除国家列表:HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionTelephonyCountry List分支下保存了系统的国家列表,只需保留86号文件夹“中华人民共和国”即可。

注册表清理2 2007-09-02 17:20
  • 清 除多余的语言代码表:HKEY_LOCAL_MACHINESSystemCurrentControlSetControlNlsLocale分支下保 存了系统得各种语言代码设置。保留“英语(美国)”(代码为0409)、“中文(中国)”(0804)和“日文(日本)”(0411)(如果您想要玩日本 游戏的话)即可。
  • 删除多余的键盘布局:HKEY_LOCAL_MACHINESystemCurrentControlSetControlKeyboard Layouts分支下保存了系统的各种键盘布局设置。将每个键值打开看看,将您需要的输入法保留即可。
  • 清除多余的窗口配色方案:HKEY_CURRENT_USERControl PanelAppearanceSchemes分支下保存了系统提供的各种窗口配色方案,用户将需要的保留即可,如“Windows标准”,其余的删除即可。
  • 删除“运行”中的程序执行记录:HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionExplorerRunMRU分支下保存着“运行”中的程序执行记录,删除下面的内容。

    • 删除失效的文件关联:HKEY_CLASSES_ROOT主键可以大致分成两部分,第一部分用来定义文件类型,第二部分与第一部分一一对应,用于记录打开文件的应用程序。一般,在打开第二部分的可疑子键后,若该键下的Command下没有内容,说明该键为空,可以删除。
    • 注册表相关基础知识3
  • Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件 system.dat和user.dat里,还有它们的备份system.da0和user.da0。通过Windows目录下的regedit.exe 程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠win.ini,system.ini和其他和应用程 序有关联的.ini文件来实现的.
    在windows操作系统家族中,system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini 管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记 录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来 说,微软的Excel有一个excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.ini和 win.ini中只需要指出excel.ini的路径和文件名即可。

    早在Dos和Win3.x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini和win.ini控制着所有windows和应用程序的特征和存取 方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。这样下来,在一 个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以 system.ini和win.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级 会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己 的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一 个应用程序的.ini文件和WIN.INI文件设置起冲突,究竟是谁的优先级更高呢?

    注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。注册表是一套控制操作系统外表 和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的 很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置 等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的 桌面。这就是通过注册表来实现的。

    由此可见,注册表(Registry)是Windows9x/Me/NT/2000操作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数 据库”;是一个巨大的树状分层的数据库。它记录了用户安装在机器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配置,包括自动配置的即插即用的 设备和已有的各种设备说明、状态属性以及各种状态信息和数据等。

    注册表都做些什么?
    注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Windows NT下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win9x下,16位驱动会继续以实模式方式设备工作,它们使用 system.ini来控制。16位应用程序会工作在NT或者Win9x 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。
    在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。

    在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS 支持的设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的 记录,它们就不能被使用。

    当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。

    注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。

    然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的 功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。

    有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。

    注册表控制用户模式的例子有:

    ★控制面板功能;

    ★桌面外观和图标;

    ★网络参数;

    ★浏览器功能性和特征。

    这些功能中的某些是和用户无关的,有些是针对用户的。

    计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。

    这里是在注册表中基与计算机控制条目的一些例子:

    ★存取控制;

    ★登陆确认;

    ★文件和打印机共享;

    ★网卡设置和协议;

    ★系统性能和虚拟内存设置。

    没有了注册表,Win9x和Windows NT 就不太可能存在。它们实在太复杂了,以致于用过去的.ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注 册表比.ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。

    在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Windows NT和Win9x系统管理基本常识。

    概括起来,注册表中存放着各种参数,直接控制着 Windows 的启动、硬件驱动程序的装载以及一些 Windows 应用程序的运行,从而在整个系统中起着核心作用。它包括:

    (1)软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据。

    (2)联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性。

    (3)性能记录和其它底层的系统状态信息,以及其它数据。

    如果注册表受到了破坏,轻者使 Windows 的启动过程出现异常,重者可能会导致整个系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题时恢复注册表,对Windows用户来说就显得 非常重要。学会了注册表的知识以及相关应用,便能使你的电脑操作更加得心应手!从而成为一位名副其实的电脑高手!

    与注册表有关的术语:
    ①、注册表:是一个树状分层的数据库。从物理上讲,它是System.dat和User.dat两个文件;从逻辑上讲,它是用户在注册表编辑器中看到的配置数据。
    ②、HKEY :“根键”或“主键”,它的图标与资源管理器中文件夹的图标有点儿相像。Windows98将注册表分为六个部分,并称之为 HKEY_name,它意味着某一键的句柄。(图2)

    ③、key(键):它包含了附加的文件夹和一个或多个值。

    ④、subkey(子键):在某一个键(父键)下面出现的键(子键)。

    ⑤、branch(分支):代表一个特定的子键及其所包含的一切。一个分支可以从每个注册表的顶端开始,但通常用以说明一个键和其所有内容。 ⑥、value entry(值项):带有一个名称和一个值的有序值。每个键都可包含任何数量的值项。每个值项均由三部分组成:名称,数据类型,数据。(如图3)

    ★ 名称:不包括反斜杠的字符、数字、代表符、空格的任意组合。同一键中不可有相同的名称。

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

    字符串(REG_SZ):顾名思义,一串ASCII码字符。如“Hello World”,是一串文字或词组。在注册表中,字符串值一般用来表示文件的描述、硬件的标识等。通常它由字母和数字组成。注册表总是在引号内显示字符串。 二进制(REG_BINARY):如 F03D990000BC ,是没有长度限制的二进制数值,在注册表编辑器中,二进制数据以十六进制的方式显示出来。

    双 字(REG_DWORD):从字面上理解应该是Double Word ,双字节值。由1-8个十六进制数据组成,我们可用以十六进制或十进制的方式来编辑。如 D1234567 。

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

    ⑦、 Default(缺省值):每一个键至少包括一个值项,称为缺省值(Default),它总是一个字串。

    注册表的内部组织结构及相互关系
    计算机配置和缺省用户设置的注册表数据在Windows NT中被保存在下面这五个文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。而 Windows9x/Me/2000将所有注册表文件存入2个文件中:System.dat和User.dat。它们是二进制文件,不能用文本编辑器查 看。它们存在于Windows目录下,具有隐含、系统、只读属性。 System.dat包含了计算机特定的配置数据,User.dat包含了用户特定的数据。User.dat文件的位置在以某个用户名登录时,其位于 C:\Windows\profiles\用户名目录下,系统同时在C:\Windows目录下保留了一个缺省的User.dat文件,以备新用户使用。 内部组织结构是一个类似于目录管理的树状分层的结构。
    WINDOWS的注册表有六大根键,相当于一个硬盘被分成了六个分区。

    在“运行”对话框中输入RegEdit,然后单击“确定”按钮,则可以运行注册表编辑器。

    左窗格显示的是注册表的根键,这样的根键共六个。这些根键都是大写的,并以HKEY_为前缀,这种命令约定是以Win32 API的Registry函数的关键字的符号变量为基础的。

    虽然在注册表中,六个根键看上去处于一种并列的地位,彼此毫无关系。但事实上,HKEY_CLASSES_ROOT和 HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而 HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括 HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系统启动后,系统就映射出 HKEY_CURRENT_USER中的信息,使得用户可以查看和编辑其中的信息。

    实际上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,为了用户便于查看和编辑,系 统专门把它作为一个根键。同理,HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。

    HKEY_USERS中保存了默认用户和当前登录用户的用户信息。HKEY_CURRENT_USER中保存了当前登录用户的用户信息。

    HKEY_DYN_DATA保存了系统运行时的动态数据,它反映出系统的当前状态,在每次运行时都是不一样的,即便是在同一台机器上。

    根据上面的分析,注册表中的信息可以分为HKEY_LOCAL_MACHINE和HKEY_USERS两大类,这两大类的详细内容请看后面的介绍。

    六大根键的作用
    注册表采用“关键字”及其“键值”来描述登录项及其数据。所有的关键字都是以“HKEY”作为前缀开头。打个比喻来说,关键字更象Windows9X下的 浏览器里的目录下的文件,每个文件都会有自己特有的内容和属性。我们可以在注册表编辑器下很方便地添加、修改、查询和删除注册表的每一个关键字。关键字可 以分为两类:一类是由系统定义,一般叫做“预定义关键字”;另一类是由应用程序定义的,根据应用软件的不同,登录项也就不同。在注册表中,所有的数据都是 通过一种树状结构以键和子键的方式组织起来,十分类似于目录结构。每个键都包含了一组特定的信息,每个键的键名都是 和它所包含的信息相关的。如果这个键包含子键,则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,以表示在这个文件夹中有更多的内容。如果 这个文件夹被用户打开了,那么这个“+”就会变成“-”。 下面我们对系统预定义的六大根键简单地介绍一下。
    1.HKEY_USERS

    该根键保存了存放在本地计算机口令列表中的用户标识和密码列表,即用户设置。每个用户的预配置信息都存储在HKEY_USERS根键中。 HKEY_USERS是远程计算机中访问的根键之一。其内容取决于计算机是否激活了用户配置文件,若未激活用户配置文件,则可以看到称为.DEFAULT 的单一子键,该子键包括和所有用户相关的各种设置,并且和\Windows下的USER.DAT文件相配合。若激活了用户配置文件并且正确地执行了登录, 则还有一个“用户名”的子键,该用户名为用户登录的名称。

    2.HKEY_CURRENT_USER

    该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码(注:此密码在输入时是隐藏的)。用户登录Windows 98时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7个子关键字。 其中除RemoteAccess”外,其余6个都为系统预定义。

    AppEvents 这个子键里登记已注册的各种应用事件。

    ControlPanel 它里面涉及到控制面板设置有关的内容。

    InstallLocationsMRU windows安装路径的有关信息。

    Keyboardlayout 关于键盘设置的信息。

    Network 有关网络设置的信息。

    RemoteAccess 安装IE 时建立的子关键字,包含该应用程序的有关信息。

    Software 软件的有关信息。

    3.HKEY_CURRENT_CONFIG

    该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表(MRU)和其他有关当前用户的Windows 98中文版的安装的信息。

    4.HKEY_CLASSES_ROOT

    该键由多个子键组成,具体可分为两种:一种是已经注册的各类文件的扩展名,另一种是各种文件类型的有关信息。左栏中的子键就是各种已经注册的文件扩展名。 注册表内己经登记的文件扩展名中,有系统默认和应用程序自定义的扩展名。应用程序只有把自定义的扩展名在注册表中登记,系统才能识别和关联使用有关的文 档,但只有经过注册的扩展名,系统才能自动关联。根据在Windows 98中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称。

    在第一次安装Windows 98中文版时,RTF(Rich Text Format)文件与写字板(WordPad)联系起来,但在以后安装了中文Word 6.0后,双击一个RTF文件时,将自动激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,将替代WIN.INI文件中 的[Extensions]小节中的设置项,它把应用程序与文件扩展名联系起来,它也替代了Windows 3.x中的Reg.dat文件中的相似的设置项。

    5.HKEY_LOCAL_MACHINE

    注册表的核心,计算机的各种硬件和软件的配置均存在于此。它包括以下八个部分:Config配置、Driver驱动程序、Enum即插即用、 Hardware硬件、Network网络、Security安全、Software软件、System系统。每部分中又包括许多子键。该根键存放本地计 算机硬件数据,此根键下的子关键字包括在SYSTEM.DAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的 一组键中。该根键中的许多子键与System.ini文件中设置项类似。

    6.HKEY_DYN_DATA

    该根键存放了系统在运行时动态数据,此数据在每次显示时都是变化的,因此,此根键下的信息没有放在注册表中。

    ©2009 Baidu