词条 | 注册表 |
释义 | § 概念 《英汉双解微软计算机辞典》 (第 5 版) 注册表 对注册表的定义是: Microsoft Windows 9x、Windows CE、Windows NT 和 Windows 2000中使用的中央分层数据库,用于存储为一个或多个用户、应用程序和硬件设备配置系统所必需的信息。 注册表包含 Windows 在运行期间不断引用的信息,例如,每个用户的配置文件、计算机上安装的应用程序以及每个应用程序可以创建的文档类型、文件夹和应用程序图标的属性表设置、系统上存在哪些硬件以及正在使用哪些端口。 注册表取代了 Windows 3.x 和 MS-DOS 配置文件(例如,Autoexec.bat 和 Config.sys)中使用的绝大多数基于文本的 .ini 文件。虽然几个 Windows 操作系统都有注册表,但这些操作系统的注册表有一些区别。 注册表数据存储在二进制文件中。 注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。 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的路径和文件名即可。 最开始,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 NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。 在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。 在系统中注册表是一个记录32位驱动的设置和位置的数据库。当操作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于操作系统的,但是操作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。 当一个用户准备运行一个应用程序,注册表提供应用程序信息给操作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。 注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。 然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。 有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。 注册表 注册表控制用户模式的例子有: 控制面板功能; 桌面外观和图标; 网络参数; 浏览器功能性和特征; 那些功能中的某些是和用户无关的,有些是针对用户的。 计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。 这里是在注册表中基与计算机控制条目的一些例子: 存取控制; 登陆确认; 文件和打印机共享; 网卡设置和协议; 系统性能和虚拟内存设置; 没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的.ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比.ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。 在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。 § 注册表的结构 注册表 注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。 计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中: DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。 Win95中所有系统注册信息保存在windows目录下的SYSTEM.DAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。 Win95用户的注册数据一般被保存在windows目录下的user.dat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\\WINDOWS\\Profiles\\username\\USER.DAT下它自己的user.dat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USER.DAT信息)将被装入,以用来保持你自己的桌面和图标。 § 控制键 在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键 HKEY_LOCAL_MACHINE 注册表 HKEY_CLASSES_ROOT HKEY_CURRENT_CONFIG HKEY_DYN_DATA HKEY_USERS HKEY_CURRENT_USER Winnt和Win95的注册表并不兼容。从Win95向Winnt升级需要你重新安装32位应用程序,重新在桌面上创建图标,并重新建立用户环境。 通过控制键可以比较容易编辑注册表。虽然它们显示和编辑好像独立的键,其实HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。 HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有内容。每次计算机启动时,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的信息被映射用以查看和编辑。 HKEY_CLASSES_ROOT其实就是HKEY_LOCAL_MACHINE\\SOFTWARE\\Classes,但是在HKEY_CLASSES_ROOT窗编辑相对来说显得更容易和有条理。 HKEY_USERS保存着缺省用户信息和当前登陆用户信息。当一个域成员计算机启动并且一个用户登陆,域控制器自动将信息发送到HKEY_CURRENT_USER里,而且HKEY_CURRENT_USER信息被映射到系统内存中。其他用户的信息并不发送到系统,而是记录在域控制器里。 § 键和子键 数据被分割成多层次的键和子键,建立分层次(就象Exploer一样)结构更易于编辑。每个键有成组的信息而且根据在其中的数据类型被命名。每个键在它的文件夹图标上都有一个加号(+)标志子键说明在它下面还有更多内容的东西。当点开它的时候,文件夹的加号标志被替换成一个减号(-)标志,然后显示出下一级的子键。 所有软件,硬件,windows工作的设置都存放在HKEY_LOCAL_MACHINE。所有安全策略,用户权限和共享信息也包括在这个键中。用户权限,安全策略,共享信息可以通过Windows NT域用户管理器,Explorer和Win95中控制面板来设置。 HKEY_CLASSES_ROOT 注册表 HKEY_CLASSES_ROOT包含了所有应用程序运行时必需的信息: 在文件和应用程序之间所有的扩展名和关联; 所有的驱动程序名称; 类的ID数字(所要存取项的名字用数字来代替); DDE和OLE的信息; 用于应用程序和文件的图标; HKEY_CURRENT_CONFIG. HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中当前硬件配置信息的映射。如果系统只有一个配置文件,也就是原始配置,数据将一直在同样的地方。在控制面板|系统|硬件配置文件|创建一个额外的配置使额外配置信息放入HKEY_LOCAL_MACHINE。当Win95中存在多个配置文件时,当每次计算机启动时将给出一个提示让你选择一个配置文件。在Winnt中,在启动时你可以按空格键来选择上次正常启动时硬件配置文件。根据硬件配置文件选择的不同,特定的信息被映射到HKEY_CURRENT_CONFIG。 HKEY_DYN_DATA HKEY_DYN_DATA和其他的注册表控制键不同,因为实际上它并不被写入硬盘驱动器中。Win95的一个优点是,在系统启动时HKEY_DYN_DATA这个控制键储存收集到的即插即用信息并配置它们。它保存在内存中,Win95用它来控制硬件。因为是在内存中,所以它不从硬盘中读取,每次当你启动计算机时,配置都有可能会不一样。在启动时Win95必须计算超过1600种可能的配置。所以,如果系统改变既定的设置而没有报告给Win95那么潜在的问题就可能发生。系统大多数时间工作良好,但是并非一直如此。 HKEY_USERS HKEY_USERS仅包含了缺省用户设置和登陆用户的信息。虽然它包含了所有独立用户的设置,但在用户未登陆网络时用户的设置是不可用的。这些设置告诉系统哪些图标会被使用,什么组可用,哪个开始菜单可用,哪些颜色和字体可用,和控制面板上什么选项和设置可用。 HKEY_CURRENT_USER 用来保存当前用户和缺省用户的信息,HKEY_CURRENT_USER仅映射当前登陆用户的信息。 § 各主键的简单介绍 HKEY_LOCAL_MACHINE HKEY_LOCAL_MACHINE是一个显示控制系统和软件的处理键。HKLM键保存着计算机的系统信息。它包括网络和硬件上所有的软件设置。(比如文件的位置,注册和未注册的状态,版本号等等)这些设置和用户无关,因为这些设置是针对使用这个系统的所有用户的。 HKEY_LOCAL_MACHINE\\AppEvents 为了以后在瘦客户机上运行客户机/服务器这样的应用程序,在Win95/98中AppEvents键是空的。应用程序实际上都驻留网络服务器上,这些键会保存部分指针。 HKEY_LOCAL_MACHINE\\Config 这个键保存着你计算机上所有不同的硬件设置(这些从控制面板的系统属性中硬件配置文件中可以创建)。这些配置在启动时通常被复制到HKCC。每个配置会被用一个键(比如0001或者0002等等)来保存,每个都是一个独立的配置。如果你只有一个单一的配置,那就只会有0001这个键 HKEY_LOCAL_MACHINE\\Config\\0001\\Display 这个键表示显示的设置,如荧屏字体,窗体大小,窗体位置和分辨率等 一个小技巧:当设置了计算机不支持的大分辨率导致Windows不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regedit.exe,在这个键的Resolution键值中把数据值修改为640,480或者800,600这样的低分辨率,然后重新启动计算机即可。 HKEY_LOCAL_MACHINE\\Config\\0001\\System 这个键保存着系统里打印机的信息 HKEY_LOCAL_MACHINE\\Config\\0001\\System\\CurrentControlSet\\Control\\Print\\Printers 在这个键下面,有一个键是为系统上每一个打印机设置的,通过控制面板添加和删除打印机会调整这个列表 HKEY_LOCAL_MACHINE\\Enum Enum键包含启动时发现的硬件设备和那些既插即用卡的信息。Win95使用总线列举在启动时通过不同的.ini文件来检测硬件信息。那些在启动时被安装的和被检测到的硬件会显示在这里。子键包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子键名表示它们各自的硬件设备信息。 HKEY_LOCAL_MACHINE\\Enum\\BIOS BIOS键保存着系统中所有即插即用设备的信息。它们用一套代码数列出,包括每一个键的详细说明,举例,*pnp0400是并行口LPT1的键。如果LPT1并不具备即插即用功能,它就会别列入到Enum下的Root键中 HKEY_LOCAL_MACHINE\\Enum\\Root Root键包括所有非即插即用设备的信息。在这里,我们可以迅速断定哪些设备是即插即用,那些不是。比如SCSI适配器,这个设备必须符合Win95中一个键名为ForcedConfig的硬件设置,这个不会改变。 HKEY_LOCAL_MACHINE\\Enum\etwork win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。 HKEY_LOCAL_MACHINE\\HARDWARE hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。 HKEY_LOCAL_MACHINE\etwork 这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\\Enum\etwork这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。 HKEY_LOCAL_MACHINE\\SECURITY security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上 HKEY_LOCAL_MACHINE\\SOFTWARE 这个键列出了所有已安装的32位软件和程序的.ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。 我们在\\Microsoft\\Windows\\Current Version下发现了一些有意思的设置,它有如下子键: 1.App paths: 你曾经安装过的所有32位软件的位置。 注册表 2.Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。 3.Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。 4.Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。 5.Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。 6.MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。 7.MS-DOS Options :在dos模式下的设置,如himem.sys,cd-roms等。 8.Network :网络驱动的配置。 9.Nls, Policies :系统管理员认为你不应该去做的事。 10.ProfileList :所有可以登陆你计算机的用户名列表。 11.在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\\Microsoft\\Windows\\CurrentVersion\\下的子键中被执行。 Run : 程序在启动时运行 RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。 RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。 RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。 注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。 12.SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。 13.Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。 14.ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。 15.Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。 16.Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似.......)winlogon(包含了合法登陆布告的文本句) HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet 这个子键包括设备驱动和其他服务的描述和控制。不同于windows nt,win95只包括限制驱动的控制设置信息。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control 这个子键包括了win95控制面板中的信息。不要编辑这些信息,因为一些小程序的改变在很多地方,一个丢失的项会使这个系统变的不稳定 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services 这个键包括了所有win95的标准服务。所有被添加的服务和设备,每个标准的服务键包括了它的设置和辨认设置。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Arbitrators atbitrators键包括了当两个设备共同占用同样的设置需要解决的信息。四个子键包括了内存地址,冲突,DMA,I/O端口冲突和IRQ冲突。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Class class键包括了所有win95支持的设备classes控制,这些和你在添加新硬件出现的硬件组很类似,还包括了这些设备如何安装的信息。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\inetaccs 这个键包括了关于这个系统变化的ie附件的可用性,它仅在你安装过ie2。0或者更高版本才出现。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\MSNP32 msnp32描述了客户机如何在microsoft网络中实现功能,它包括了认证过程和认证者的信息。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\WNP32 nenp32键描述了windows客户如何在netware网络中工作功能,它包括了关于认证过程和证明者的信息。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\RemoteAccess 在这个键里包括需要远程工作在win95系统上的信息,有认证参数,主机信息,和为了建立一个拨号连接工作的协议信息。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\SNMP 这个键包括了所以snmp(简单网络管理协议)的参数。它包括了允许的管理,配置陷阱,和有效的团体。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\VxD vxd键包括了win95中所有32位虚拟设备驱动信息,win95自动管理它们,所以不必要用注册表编辑器编辑它们,所以的静态vxds用子键列出。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\WebPost webpost键包括了所有装载的internet邮局的设置,如果你连接一个isp,并且它列出载这里,你应该给自己选则一个服务器。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\Winsock 这个键列出了当连接到internet上winnsock文件的信息,如果列出了不正确的文件,你将不会连接上internet。 HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Services\\WinTrust wintrust功能是检查从Internet上下载来的文件是否有病毒,它可以确保你得到干净安全的文件。 HKEY_CLASSES_ROOT 在注册表中HKEY_CLASSES_ROOT是系统中控制所有数据文件的项。这个在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制键包括了所有文件扩展和所有和执行文件相关的文件。它同样也决定了当一个文件被双击时起反应的相关应用程序。 HKEY_CLASSES_ROOT被用作程序员在安装软件时方便的发送信息,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\\Software\\Classes是相同的。程序员在运行他们的启动程序时不需要担忧实际的位置,相反的,他们只需要在HKEY_CLASSES_ROOT中加入数据就可以了。 在Windows用户图形界面下,每件事----每个文件,每个目录,每个小程序,每个连接,每个驱动---都被看做一个对象;每个对象都有确定的属性和它联系。HKCR包含着对象类型和它们属性的列表。HKCR主要的功能被设置为: 一个对象类型和一个文件扩展名关联 注册表 一个对象类型和一种图标关联 一个对象类型和一个命令行动作的关联 定义对象类型相关菜单选项和定义每一个对象类型属性选项 在Win95中,相关菜单就是当你鼠标右击一个对象时所弹出的菜单;属性就是当你选择属性项后一个展开的对话框。用简单术语来说就是在改变HKCR中的设置可以改变一个给定文件扩展名缺省的关联。改变一个文件类型的缺省图标,和添加或者删除给定对象类型的弹出菜单内容(或者所有的对象类型) HKCR包括了三种基本类型的子键 \\??? 或者文件扩展名子键 文件扩展名子键在弹出菜单上连接文件扩展名到对象类型和相关操作,属性项,和相关操作。 \\object 类型子键 对象类型子键定义了一个对象类型在它缺省图标的项,它的弹出菜单和属性项,它的相关操作和它的CLSID连接。 \\CLSID 子键 在Windows下每件事都被用一个数字取代它的名字来对待。就象人往往是用名字来处理事情一样。CLSID是标识所有列出的图标,应用程序,目录,文件类型等等对象的数字。是微软为制造商分配的,每一个都必须是唯一的。制造商将CLSID放入安装程序文件这样就可以在安装时更新注册表。 注册表是应用程序进行时它们需要关于做什么的指示的数据库。比如说,假定你有一个微软Excel 7电子数据表的Word 7文档,当你在Word中双击这个电子数据表,应用程序菜单就会变成Excel的菜单而且电子数据表进入编辑状态,就好像你在Excel中一样。它是如何知道该做什么呢?每个Excel 7创建的文件都有Excel的CLSID连接。Word读这个CLSID后,到注册表中寻找指示,依赖CLSID下的数据运行.DLL文件或者应用程序。 CLSID子键为对象类型提供了OLE和DDE信息和图标。相关菜单,或者包含在它子键中的属性项信息。这个可能是多数让人看到后觉得“恐怖”的键。每个CLSID数必须是唯一的,实际上,为了这个目的微软已经出产了CLSID-产生程序--这个结果导致你往往得到32位16进制的数字串,除非你是程序员,否则多数部分键看起来是很枯燥的。它们包括内存管理模式,客户机/服务器配置,和OLE处理的.dll连接。 § 关于子键的一点注解 1)shell:Shell键有个一”action“子键,如同”open“一样,这里有一个command子键;command子键有一个缺省句值,它包含了运行程序的命令行。将一个”open“子键放在一个对象类型的shell子键中会在这个对象类型的弹出菜单上多出一个”open“选项,给这个open子键一个command(缺省命令行"C:\\Windows \otepad.exe %1")子键会使得打开这个对象类型时使用笔记本做为缺省应用程序。其他操作选项包括View,Print,Copy,Virus,Scan等等。 2)shellex:Shellex键有一个子键。它们包含的每一个子键指向一个为对象类型执行OLE和DDE功能的CLSID项(比如说快速查看,一个菜单处理子键下指向一个有句值的CLSID键列出了包含了文件浏览功能的.dll文件) 3)shellnew:ShellNew包含了一个“command”句,它包含了一个打开对象类型“新”文件的命令行。 4)DefaultIcon:DefaultIcon子键包含了一个“default”句,它包括了一个指向图标的命令行(比如说,"C:\\Windows \\System \\shell32.dll,2" 2就是从0数的第三个图标,记住,是在Shell32.dll中的) 除了和它们扩展名关联扩展名和文件类型以外,它们在HKEY_CLASSES_ROOT还有很多项。所有它们的项也都适用于nt,如界面和应用程序的执行。通常你将编辑仅仅一小部分这样的项。除了弹出菜单提示以外,所有包含在这里的项只会在安装应用程序,在程序中设置调整或者创造关联时被改变。 没有HKEY_CLASSES_ROOT你是不能启动系统的;你手工编辑它真的是很困难。HKEY_CLASSES_ROOT是你需要注册标一个很重要的原因:应用程序的控制和操作这个系统。看到它的尺寸和这个处理键的复杂程度,SYSTEM.INI 和 WIN.INI不再够用也是不用惊奇的。 HKEY_CURRENT_CONFIG win95一般只使用一个硬件配置文件。如果有多个硬件配置文件。HKEY_LOCAL_MACHINE\\Config中就会添加一个键。HKEY_LOCAL_MACHINE\\Config包含了HKEY_LOCAL_MACHINE中相同的数据 在启动时,你可以选择你愿意使用的配置文件。如果有多个安装,每次系统重新启动时,你就必须选择.HKEY_CURRENT_CONFIG是在启动时控制目前硬件配置的键 在系统启动以后,任何地方的变化都会自动影响到它。程序员经常使用HKEY_CURRENT_CONFIG方便的来存取配置信息。 HKEY_CURRENT_CONFIG包括了系统中现有的所有配置文件的细节。你的选择影响了哪一个硬件配置文件成为现在的。举例来说,如果配置0002被选择了,所有0002的配置信息会被映射到这些键上 HKEY_CURRENT_CONFIG允许软件和设备驱动程序员很方便的更新注册表,而不涉及到多个配置文件信息。 HKEY_LOCAL_MACHINE中同样的数据和任何注册表的变化都会同时的变化。 HKEY_DYN_DATA 在HKEY_DYN_DATA键中所有信息都是在启动时被写入的。它再现了Win95在系统中控制硬件所使用的动态数据。它仅只有三个键。它们保留了系统目前状态监视所需要的很简单的信息 在HKEY_DYN_DATA中除了暂时文件,没有任何数据被写入硬盘。在系统每次重新启动时所有的数据被重新写入。另外,在既插即用的情况下,当设备改变状态时一些数据可能会写入。(比如说系统运行时在一个PCMCIA槽中插入一块网卡) Config Manager 配置管理包括了在Win95中每个安装设备启动时的信息。在启动时它从HKEY_CURRENT_CONFIG中获得它的列表并且检查每个项。如果找到一个没有在列表中列出的设备,它向系统报告这些信息来安装。如果列表中的一个设备不在系统中,它就会在这个键值中显示这个情况。 Enum 系统中已安装的每个设备的启动状态都在这个键中被列出。如果某个设备没准备好,它就在这里显示出来。如果它准备好了,它也会显示出来。每个设备指针也被列出显示哪个注册这个设备用来做它的控制 PerfStats 系统中所有设备的性能特征保存在这个键。它是十分难读的,但是通过系统监视器就十分容易看懂 Security 这个键显示了登陆在这台机器和网络上的登陆用户从哪个证明者得到有效的证明 HKEY_USERS HKEY_USERS将缺省用户和目前登陆用户的信息输入到注册表编辑器,在win95中,它仅被那些配置文件激活的登陆用户使用,同样在nt下,它也是这样。 win95从user.dat中取得他们的信息,winnt从ntuser.dat中取得信息。.dat文件包含了所有基于用户的注册表设置并且允许你取配置这些用户的环境。如果你改变了缺省用户的设置,所有新用户会继承同样的设置。而且,那些已经被建立的用户变的失效。 HKEY_USERS\\.DEFAULT 这个键的设置被用于所有新用户,用户们的配置文件从这个配置文件中建立。它包括所有的环境,屏幕,声音,和其他用户相关的功能。 HKEY_USERS\\.DEFAULT\\AppEvents 这个键列出了事件响应,描述,和各种系统功能的声音 注册表 HKEY_USERS\\.DEFAULT\\AppEvents\\Schemes 缺省和当前的声音方案在这个键和它的子键中列出。在事件的时间中系统播发这些声音 HKEY_USERS\\.DEFAULT\\Console 这个键保存了MS-DOS窗口的选项、布局、荧屏颜色和字体设置。 HKEY_USERS\\.DEFAULT\\Control Panel 所有在控制面板里配置设置的信息全保存在这个键和它的子键中 HKEY_USERS\\.DEFAULT\\Control Panel\\Accessibility 这个键保存了所有在控制面板中辅助功能的设置。 HKEY_USERS\\.DEFAULT\\Control Panel\\Appearance 这个键保存了所有在控制面板里显示外观的设置 HKEY_USERS\\.DEFAULT\\Control Panel\\Appearance\\Schemes 这个键列出了缺省可用的方案,和每个方案包括的颜色和字体。 HKEY_USERS\\.DEFAULT\\Control Panel\\Colors 这个键保存了Windows每个缺省颜色的设置。每个值(颜色名)像一个RGB(红、绿、蓝)值列出来。比如说,黑色是0 0 0,意思就是红色值是0,绿色值是0,蓝色值也是0。相反的白色就是255 255 255。其他的颜色都是RGB值合成的。 HKEY_USERS\\.DEFAULT\\Control Panel\\Sound 这个键决定了在错误时系统是否发出响声 HKEY_USERS\\.DEFAULT\\Environment 这个键保存了环境设置,特定的临时性文件的位置 HKEY_USERS\\.DEFAULT\\Keyboard Layout 键盘布局设置被设置成标准美国英国标准传统键盘布局。如果你选择了其他的布局,那么数字列表会不同 HKEY_USERS\\.DEFAULT\\Software 软件的安装设置被保存在这个键中,缺省用户只有微软程序的设置 HKEY_USERS\\.DEFAULT\\Software\\Microsoft 微软的应用程序的相关设置被放在这个键里。如果其他微软程序被安装,它们就更新这个用户的微软键。在下面的项目显示了缺省的控制 HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows 这个键保存了只和windows有联系,和windows nt没关系的设置,这些设置在win95中是相同的,使用同样的驱动和功能 HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows NT 基于nt 功能的设置在这个键中。windows nt没有这些设置就不能够运行,它建立环境和网络上的进程,用户权限,打印机,字体等等 HKEY_USERS\\.DEFAULT\\Software\\Microsoft\\Windows NT\\CurrentVersion\\Winlogon 这个设置控制了windows nt的登陆功能 HKEY_USERS\\.DEFAULT\\UNICODE Program Groups 缺省unicode程序组只是在使用程序管理器时被使用,explorer并不使用它们 S-1-5-21-1658001358-1336221227-1912232085-500 (SID) HKEY_USERS\\S-1-5-21-1658001358-1336221227-1912232085-500 这个是目前登陆用户的sid,每一个网络上的用户都被域用户管理器分配了一个sid,每一个sid都是唯一的,所以它依赖与登陆用户,这个信息改变。它是从用户配置文件的ntuser.dat文件调出的。一般来说,它的子键很多,是基与安装的软件的,选择的和最终设置 HKEY_USERS\\SID\etwork 这个键显示了所有连接到其他系统的映射。举例来说,如果你映射驱动器H: 到\\\\server1\\docs,它会作为一个子键显示出来 HKEY_USERS\\SID\\Printers 这个键显示了所有安装的,共享的和连接的打印机 HKEY_USERS\\SID\\Software 这个键为单独的用户扩展,基于为用户或者被用户安装的其他软件。 HKEY_USERS保存了所有目前登陆用户和缺省用户的设置。登陆用户的改变就如同不同用户使用这个系统,sid是用户信息的表现。使用程序重新找到任何用户的ntuser.dat文件并且把他放如到注册表中观看和编辑。 HKEY_CURRENT_USER HKEY_CURRENT_USER包含着在HKEY_USERS安全辨别里列出的同样信息。任何在HKEY_CURRENT_USER里的改动也都会立即HKEY_USERS改动。相反也是这样。 HKEY_CURRENT_USER允许程序员和开发者易于存取目前登陆用户的设置。通过建立这个键,微软很容易在不涉及到用户的SID下改变,添加和设置。 也就是说,所有当前的操作改变只是针对当前用户而改变,并不影响其他用户。 首先出场的是Win98/Me,因为Win98和WinMe没有大的区别,所以这里放在一起讲述。在Win98/Me里面的注册表编辑器只有一种,就是最"原始"的那一种。之所以说他原始是因为他没有任何安全限制,也就是说它的注册表编辑器可以被任意一个用户打开,并没有任何权限限制。这主要是因为Win98/Me的使用对象是一般的单机用户,不需要限制权限,这一点和NT/2000/XP有很大的不同。 注册表 打开的方法: 1.最简单的方法:开始--运行中输入regedit就可以了。 2.另外一种方法:在Windows目录下找到regedit.exe,直接双击也可以打开。 随后是Win2000/XP出场。因为2000/XP在设计时加上了权限这一概念,所以在这2个系统里面有2种方法可以打开注册表编辑器。一种是直接在开始--运行中输入regedit,出现的界面和98/Me一样。这里就不详细说明了。另外一种打开方式是本文的重点内容----有权限限制的注册表编辑器(打开方法:开始----运行中输入regedt32)。如图所示(这里是WinXP的截图,Win2000下的截图和WinXP是一样的)。 当你选中一个键值的时候,编辑下拉菜单下就可以看到一个选项----权限,用鼠标单击这个选项以后会出现图2的窗口。用鼠标分别单击各个用户组就可以看到不同的权限限制,如果你觉得某一个用户组的权利太高了,就可以在下方修改权限(注意:必须赋予Administrators组用户完全权限,否则一旦你或相应的软件、驱动程序要修改注册表,但是由于所有的组用户都没有权限修改,所以你将不能够成功安装。所以必须把完全权限赋予Administrators组用户(系统默认)。图3是Administrators组用户所拥有的权限。看了这些以后我想大家都应该知道该如何正确的打开注册表编辑器了吧,如果还不清楚的话就请看下面这张表,看了以后如果还有问题的话欢迎留言或发Email给我 § 操作系统版本、打开方法及注意事项 Win98/98SE/Me 运行中输入regedit.exe 因为98/ME里面没有任何有效的权限限制功能,所以任何用户均对注册表由完全控制功能。 Win2000/XP 1.运行中输入regedit.exe 2.运行中输入regedt32.exe 使用第一种方法打开的注册表编辑器和Win98下的界面一样,而且功能也一样,用佯没有可以设置权限的地方,但是使用第二种方法打开的注册表编辑器就可以很方便的设置权限,如果你作为一个网络管理员的话,建议你安装完系统以后使用第2种方法打开注册表编辑器,然后修改需要修改的权限设置部分以免被他人恶意修改。 百科名片 注册表(Registry,繁体中文版Windows称之为登录)是Microsoft Windows中的一个重要的数据库,用于存储系统和应用程序的设置信息。早在Windows 3.0推出OLE技术的时候,注册表就已经出现。随后推出的Windows NT是第一个从系统级别广泛使用注册表的操作系统。但是,从Microsoft Windows 95开始,注册表才真正成为Windows用户经常接触的内容,并在其后的操作系统中继续沿用至今。 由来 在Windows 3.x操作系统中,注册表是一个极小文件,其文件名为Reg.bat,里面只存放了某些文件类型的应用程序关联,大部分的设置放在Win.ini、System.ini等多个初始化INI文件中。由于这些初始化文件不便于管理和维护,时常出现一些因INI文件遭到破坏而导致系统无法启动的问题。为了使系统运行得更为稳定、健壮,Windows 95/98设计师们借用了Windows NT中的注册表的思想,将注册表引入到Windows 95/98操作系统中,而且将INI文件中的大部分设置也移植到注册表中,因此,注册表在Windows 95/98操作系统的启动、运行过程中起着重要的作用。 概述 注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用system.ini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考win.ini和system.ini文件获得信息和控制。 在没有注册表的情况下,操作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。 |
随便看 |
百科全书收录594082条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。