分类: 电脑/网络 >> *** 作系统/系统故障
解析:
如何使用注册表
windows的注册表(registry)实质上是一个庞大的数据库,它存储这下面这些内容:软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸载数据;计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联, 硬件的描述、状态和属性;计算机性能纪录和底层的系统状态信息,以及各类其他数据。
注册表的结构是:
windows为我们提供了一个注册表编辑器(regeditexe)的工具,它可以用来查看和维护注册表。由图我们可以看到,注册表编辑器与资源管理器的界面相似。它有六个分支(有的是五个):
ey-classes-root 文件扩展名与应用的关联及ole信息
ey-current-user 当前登录用户控制面板选项和桌面等的设置,以及映射的网络驱动器
ey-local-machine 计算机硬件与应用程序信息
ey-users 所有登录用户的信息
ey-current-config 计算机硬件配置信息
ey-dyn-data 即插即用和系统性能的动态信息
注册表修改方法有:
1软件修改(安全)
通过一些专门的修改工具来修改注册表,比如:magicset、eakui、winhacker等等。其实控制面板就是一个这样的工具,只不过功能简单一些。
2间接修改(比较安全)
将要修改的写入一个reg文件中,然后导入注册表中。这样做的好处是可以避免错误的写入或删除等 *** 作,但是要求用户了解注册表的内部结构和reg文件的格式。
3直接修改(最不安全,但最直接有效)
就是通过注册表编辑器直接的来修改注册表的键值数据项,,但是要求用户有一定的注册表知识,熟悉注册表内部结构而且一定要小心谨慎,否则会把系统弄瘫。
使用方法大致是:
(1)修改键值:开始—运行-输入 regedit --确定,打开注册表编辑器,在左窗格选定你要修改的子键,在右窗格打到要修改的键值项,右击该键值项,按要求修改,修改完毕。
例:以加快开关机修改“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-将字符串“WaitToKillServceTimeout” 数值数据20000修改为1000。
开始—运行—输入“Regedit”—在打开的注册表编器中后步向下打到“Control”左击打开右窗格,在右窗格打到“WaitToKillServceTimeout”双击打开“编辑字符串”对话框,在“数值数据”框中输入要修改为的数据数值“1000”—确定。
(2)新建子键和键值:右击父键,选“新建→项”,在打开的“新建#1“中输入子键名,确定,右击新建的子键,在右窗格添加新键值项和键值。
例:新建字符串,新建“HKEY-LOCAL-MACHINE”-“Stem”“CurrentControlSet”-“Control”-“HungAppTimeout”的数值数据为“200”。
开始—运行—输入“Regedit”—在打开的注册表编器中后步向下找到“Control”左击打开右窗格,右击右窗格空白处—新建—字符串—在名称中输入名称“HungAppTimeout”,双击该名称打开“编辑字符串”对话框,在“数值数据”框中输入数据数值“200”—确定。
(3)删除子键和键值:开始—运行-输入 regedit --确定,打开注册表编辑器,在左窗格右击你要删除的子键,选“删除”;在右窗格右击你要删除的键值项,选“删除”。
注意,为保险起见,修也注册表前要备分注册表,方法是:在注册表编辑器窗口—文件—导出—选择导出部分还是全部—输入文件名—保存。一旦修改错误 可用“导入”方法恢复。
因为内容太多,三言二语说不清楚,以上仅供参考。
什么是注册表?
注册表因为它复杂的结构和没有任何联系的CLSID键使得它可能看上去很神秘。不幸的是,微软并没有完全公开讲述关于注册表正确设置的支持信息,这样使得注册表看上去更不可琢磨。处理和编辑注册表如同“黑色艺术”一样,它在系统中的设置让用户感觉象在黑暗中摸索一样找不到感觉。这样,因为用户对这方面的缺乏了解使得注册表更多的出现故障。
Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件systemdat和userdat里,还有它们的备份systemda0和userda0。通过Windows目录下的regeditexe程序可以存取注册表数据库。在以前,在windows的更早版本(在win95以前),这些功能是靠winini,systemini和其他和应用程序有关联的ini文件来实现的
在windows *** 作系统家族中,systemini和winini这两个文件包含了 *** 作系统所有的控制功能和应用程序的信息,systemini管理计算机硬件而winini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在ini文件中,任何新程序都会被记录在ini文件中。这些记录会在程序代码中被引用。因为受winini和systemini文件大小的限制,程序员添加辅助的INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个excelini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在systemini和winini中只需要指出excelini的路径和文件名即可。
最开始,systemini和winini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改ini文件。然而,没有一个人在删除应用程序后删除ini文件中的相关设置,所以systemini和winini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的ini文件,然后指向特定的ini文件如winini和systemini文件。这样下来多个ini文件影响了系统正常的存取级别设置。如果一个应用程序的ini文件和WININI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位 *** 作系统和应用程序包括了所有功能下的东东注册表是一套控制 *** 作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。
注册表都做些什么?
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用systemini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考winini和systemini文件获得信息和控制。
在没有注册表的情况下, *** 作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当 *** 作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持设备安装时必须需要驱动,这个驱动是独立于 *** 作系统的,但是 *** 作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给 *** 作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
控制面板功能;
桌面外观和图标;
网络参数;
浏览器功能性和特征;
那些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
存取控制;
登陆确认;
文件和打印机共享;
网卡设置和协议;
系统性能和虚拟内存设置;
没有了注册表,Win95和Winnt 就不太可能存在。它们实在太复杂了,以致于用过去的ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Winnt和Win95系统管理基本常识。
二、注册表的结构
注册表的结构
注册表是Windows程序员建造的一个复杂的信息数据库,它是多层次式的。在不同系统上注册表的基本结构相同。其中的复杂数据会在不同方式上结合,从而产生出一个绝对唯一的注册表。
计算机配置和缺省用户设置的注册表数据在Winnt中被保存在下面这五个文件中:
DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSERDAT。
Win95中所有系统注册信息保存在windows目录下的SYSTEMDAT文件里。所有硬件设置和软件信息也保存在这个文件。它要比NT注册表文件简单的多,因为这里并不需要更多的控制。Win95被设计为一个网络的客户或者单独工作的系统,所以用户控制或者安全级别和NT不一样。这使得Win95注册表工作比NT更容易,所以这个文件也比较小。
Win95用户的注册数据一般被保存在windows目录下的userdat里。如果你在控制面板|密码|用户配置文件中创建并使用多于一个用户的配置文件,每个用户就会有在\WINDOWS\Profiles\username\USERDAT下它自己的userdat文件。在启动时,系统将记录你的登陆,从你目录中的配置文件(USERDAT信息)将被装入,以用来保持你自己的桌面和图标。
控制键
在注册表编辑器中注册表项是用控制键来显示或者编辑的。控制键使得找到和编辑信息项组更容易。因此,注册表使用这些条目。下面是六个控制键
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不能启动时(黑屏),可以修改分辨率来解决。进入安全模式,运行regeditexe,在这个键的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\Network
win95的网络功能在这个键有详细说明,子键包括了每个已经安装的主要的服务和协议。
HKEY_LOCAL_MACHINE\HARDWARE
hardware子键包括了两个多层的子键:DESCRIPTION键,它包含了中央处理器和一个浮点处理器的信息。还有一个设备映射键,它下面的串行键列出你所有的com端口。这个hardware键仅保存超级终端程序的信息,及数学处理器和串行口。
HKEY_LOCAL_MACHINE\Network
这个键仅保存网络登陆信息。所有网络服务细节都保存在HKEY_LOCAL_MACHINE\Enum\Network这个键中。这个键有一个子键,logon,包括了lmlogon(本地机器登陆?0=false 1=true)的值,logonvalidated(必须登陆验证),策略处理,主登陆方式(Windows登陆 ,微软网络客户方式等),用户名和用户配置。
HKEY_LOCAL_MACHINE\SECURITY
security 有两个子键,第一个是存取(它最终致使一个远程键列出网络安全资源,存取权限等)和提供(包括列出网络地址和地址服务器),这个键被保留用在以后使用高级安全功能和NT兼容性上
HKEY_LOCAL_MACHINE\SOFTWARE
这个键列出了所有已安装的32位软件和程序的ini文件。它包括了变化,依靠软件安装。那些程序的控制功能在这里的子键中列出。多数子键简单的列出了安装软件的版本号。
我们在\Microsoft\Windows\Current Version下发现了一些有意思的设置,它有如下子键:
1App paths: 你曾经安装过的所有32位软件的位置。
2Applets, Compression, Controls Folder : 包括下控制面板象显示属性那样属性条的附件。
3Detect, explorer :很多有意思的子键如Namespace keys of Desktop和My Computer----它们指出了回收站和拨号网络的CLSID行----和提示子键可以让你建立自己的提示。
4Extensions : 一个扩展联系的列表,当前相关联的扩展名和比特定的执行文件更适合的目标类型。
5Fonts, fontsize, FS Templates :系统属性条中所选择文件系统模板, 服务器,桌面计算机或者笔记本电脑信息。
6MS-DOS Emulation :包括一个应用程序兼容子键 为大量过时的程序二进制键所设。
7MS-DOS Options :在dos模式下的设置,如himemsys,cd-roms等。
8Network :网络驱动的配置。
9Nls, Policies :系统管理员认为你不应该去做的事。
10ProfileList :所有可以登陆你计算机的用户名列表。
11在Windows启动时运行的程序的神秘之处是它们并不在开始菜单的启动文件夹中。它们在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子键中被执行。
Run : 程序在启动时运行
RunOnce : windows初始化时程序在启动时只运行一次,这个经常用在当安装软件之后需要重新启动系统的时候,所以这个键一般都是空的。
RunServices : 它就象Run一样,但是包含了“服务”,它不象一般的程序它们是比较重要的或者是“系统”程序。但是它们不是VXDs,就象McAfee或者RegServ工作一样。
RunServicesOnce : 它只运行一次,但是是“系统自身”的安装(大量的windows安装参数:通常键值包括了系统目录位置,和win95更新,可选项安装组件,和windows启动目录的子键。
注意:在很多黑客木马软件中,常常在这里添加键值(一般是在Run中),这样使得木马软件可以随着windows启动而启动并且很隐秘。在这里可以查看不正常的启动项和去掉无用的运行程序(比如我就很不喜欢超级解霸的自动伺服器,在这里可以去掉它)。
12SharedDLLs:共享DLL的列表,每一个都给出了在一个不可知系统的一个数字等级。
13Shell Extensions:列出了“被认可的”OLE注册条,和相应的CLSID连接。
14ShellScrap :这个包含了一个PriorityCacheformats的子键,它包括了一个空的有限值,它更象过去SmartDrive命令行参数的派生。
15Time Zones : 主键值是你现在的时区;子键定义了所以可能的时区。
16Uninstall:这个保存了程序在添加/删除程序对话框的显示;子键包含了指向反安装程序的路径。和安装向导相似)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\NWNP32
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中,相关菜单就是当你鼠标右击一个对象时所d出的菜单;属性就是当你选择属性项后一个展开的对话框。用简单术语来说就是在改变HKCR中的设置可以改变一个给定文件扩展名缺省的关联。改变一个文件类型的缺省图标,和添加或者删除给定对象类型的d出菜单内容(或者所有的对象类型)
HKCR包括了三种基本类型的子键
\ 或者文件扩展名子键
文件扩展名子键在d出菜单上连接文件扩展名到对象类型和相关 *** 作,属性项,和相关 *** 作。
\object 类型子键
对象类型子键定义了一个对象类型在它缺省图标的项,它的d出菜单和属性项,它的相关 *** 作和它的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子键中会在这个对象类型的d出菜单上多出一个”open“选项,给这个open子键一个command(缺省命令行"C:\Windows \Notepadexe %1")子键会使得打开这个对象类型时使用笔记本做为缺省应用程序。其他 *** 作选项包括View,Print,Copy,Virus,Scan等等。
2)shellex:Shellex键有一个子键。它们包含的每一个子键指向一个为对象类型执行OLE和DDE功能的CLSID项(比如说快速查看,一个菜单处理子键下指向一个有句值的CLSID键列出了包含了文件浏览功能的dll文件)
3)shellnew:ShellNew包含了一个“command”句,它包含了一个打开对象类型“新”文件的命令行。
4)DefaultIcon:DefaultIcon子键包含了一个“default”句,/td>
程序是不能保存在注册表中的,注册表(Registry,繁体中文版Windows称之为登录)是MicrosoftWindows中的一个重要的数据库,用于存储系统和应用程序的设置信息。注册表是windows *** 作系统中的一个核心数据库,其中存放着各种参数,直接控制着windows的启动、硬件驱动程序的装载以及一些windows应用程序的运行,从而在整个系统中起着核心作用。这些作用包括了软、硬件的相关配置和状态信息,比如注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据等,联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性,性能记录和其他底层的系统状态信息,以及其他数据等。注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Winnt下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win95下,16位驱动会继续以实模式方式设备工作,它们使用systemini来控制。16位应用程序会工作在NT或者Win95 下,它们的程序仍然会参考winini和systemini文件获得信息和控制。在没有注册表的情况下, *** 作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。[2]
分类: 电脑/网络 >> *** 作系统/系统故障
问题描述:
注册表与应用程序之间是怎样的一种关系?
程序在安装时对注册表做了哪些修改?
这些修改的作用是什么?
解析:
就像是你办一个公司,要到相关部门注册登记一样,这样你的公司运行起来才合法。人家才不会找你的麻烦,才不会出现错误。程序也一样啊,你安装的时候要在系统的注册表里面登记,这样在你运行程序的时候,系统会记录相关的数值,保证程序正常运行。
你要知道绿色软件是怎么做的,是吧,那就仔细阅读下面的方法。
下面讲一下绿色软件的制作,简称软件的"绿化",绿色软件的制作实际上就是我们自己完成安装程序的工作。没有什么固定的方法,基本上是猜测加上试验,不同类别的绿色软件分别有不同的制作策略。 拿到一个新的软件,想要制成绿色软件的话,一般遵循如下步骤:
一、判断。就是指猜测这个软件能不能制成绿色软件,从功能,从你对它的了解,如果你觉得这个软件和系统的关系非常紧密,就不要继续下去了,还是用原始的安装程序最保险最方便,这样的例子有directx9 ,IE6,Norton的反病毒软件等等。这样的判断可以节省你的时间,当然你可以忽略这一步,尝试制作绿色软件,那么就转到第2步。
二、"绿化"。对于不同的软件有不同的方法,没有一定的规则,但是总的来说,就是理解软件的安装过程,转换为绿色安装,在这个过程中,可能需要尝试多个方法,也可能最后由于软件的复杂性或者某些特性,导致无法绿化。要有失败的思想准备,具体的绿化方法随后讲述。
三、测试。"绿化"后的测试最好到你个全新安装的 *** 作系统中测试,而且如果你要在多个 *** 作系统中使用这个软件的话,还要在其他的 *** 作系统中测试,有的软件的文件随着 *** 作系统的不同而不同,这个时候你需要在不同的 *** 作系统中进行"绿化"过程,最后综合为一个完整的适应多个 *** 作平台的绿色软件。 "绿化"方法,需要根据经验选择不同的"绿化"方法,也可能需要不断尝试不同的方法,直到成功为止。按照先易后难的次序,具体的方法包括:
1 解压缩。这是最简单的一种方法,就是指尝试能不能直接解开软件的压缩包。用Winzip和Winrar试一试,看看能不能直接打开压缩的安装文件,如果不能打开,那么就换别的方法。如果可以,那么恭喜,这个软件多半是属于绿色安装的软件(有个别例外,如EmEditor),把压缩包中的文件直接解压到目标路径,然后测试软件的功能是否正常,如果功能正常,那么"绿化"就成功了,如果使用不正常,那么就换别的方法。这一类软件的特点是安装程序的工作完全可以由软件自身来完成。
2安装然后卸载。也是比较容易的方法,完全是体力劳动,就是指直接安装这个软件,然后把程序复制出来,最后卸载安装程序。如果这个软件的安装程序的作用仅仅是复制文件和生成快捷键等工作,那么就属于绿色安装,可以使用这个方法。最后测试软件的功能是否正常,如果功能正常,那么"绿化"就成功了,如果使用不正常,那么就换别的方法。
3 反编译安装程序。这个方法需要动脑筋,就是根据安装程序所用的制作工具,选择相应的反编译程序,然后阅读反编译出的安装脚本,制作绿色软件。目前的软件大多使用专门的安装工具制作,如InstallShield,Wise,Inno Setup,Windows Installer,NSIS(Nullsoft),Installer VISE,其中Windows Installer格式的安装文件(就是MSI,MST为后缀的文件),可以通过微软的免费工具Orca打开查看,InstallShield格式的安装文件也有很多免费的工具可以解压缩和查看脚本。当然专门的安装工具很多,有许多安装程序没有相应的反编译程序,这种时候,就无法使用这个方法了。
4 观察反安装程序和log文件。现在的软件安装完成后绝大多数都带有卸载方法。卸载是安装的逆过程,如果知道怎么卸载,那么也可以推测出如何安装。由专门的安装工具制作的反安装程序,一般都是根据某一个文件中的信息来卸载的,可以用一个纯文本的编辑器打开这个文件。个别情况下这个文件完全不包含可读信息,就只好换用其他方法了。具体过程就是先采用方法2,然后理解反安装过程,最后根据反安装的信息制作绿色软件。
5 比较系统快照。当前面的方法都失败的时候,可以试一试这个方法。具体思路就是首先在安装软件之前,把系统的状态记录下来,主要包括注册表和系统目录的所有的文件状态。然后就是安装软件。安装完成后,再一次记录系统状态。最后就是比较前后两个系统状态的不同,而得知安装程序所做的工作。这个工作一般由专门的软件完成,如免费工具Regshot,免费工具inctrl5(pcmag/article2/0,4149,9882,00),微软公司的sysdiff工具(可以从Windows2000的资源工具箱中得到),或者WinInstall LE(在Windows 2000 Sever 光盘的目录VALUEADD\3RDPARTY\MGMT\WINSTLE\中)。在多数时候,仅仅需要对比安装前后注册表的不同,这时候还有大量的注册表工具可以选用。在得出系统差异后,把差异分解为两个部分:文件部分和注册表部分。文件部分指的是向系统目录拷贝的文件,以及作为COM组件注册的文件,还有与这些文件相关的注册表部分。注册表部分单单指其余的注册表的变化。对于文件部分,可以进一步区分出必须要往系统目录拷贝的文件(这种情况是少数)和可以放在软件的安装目录的文件。对于注册表部分,区分出由这个软件的安装程序本身所作出的注册表 *** 作和注册COM组件时候的注册表 *** 作,抛弃其他程序(如资源管理器Explorer)的 *** 作。根据所有这些,写一个拷贝文件,注册COM组件和导入注册表的批处理文件,就可以完成绿色软件的制作了。当注册表文件中含有路径信息的时候,可以手工修改注册表文件或者把注册表文件转化为INF文件从而实现全自动的路径处理。
6 直接导出注册表,寻找自注册的COM组件。这个方法是上面的方法5的简化版,现在软件的配置大多写在注册表中的"HKEY_LOCLAL_MACHINE \SOFTWARE\软件公司名字"和"HKEY_CURRENT_USER\SOFTWARE\软件公司名字"这2个键下面,直接对把这2个注册表键导出到REG文件中。自注册的COM组件都需要导出如下4个函数:DllCanUnloadNow,DllGetClassObject, DllRegisterServer, DllUnregisterServer,可以用vc自带的dependexe找出哪一个动态链接库是自注册的COM组件。最后写一个批处理文件用 regsvr32exe注册COM组件和用regeditexe导入注册表。通过上面分析安装程序的动作,把安装程序的工作分解为复制文件,注册COM组件,安装服务驱动,注册表配置等几个部分,虽然注册表配置可以覆盖注册COM 组件,安装服务驱动等 *** 作步骤,但是把这些明显分割出来有助于制作绿色安装的软件。对于需要更复杂的步骤来安装的软件,还是使用原来的安装程序比较保险。
具体事例 :
winrar330 和Winzip90,采用方法1,解压缩。这个方法非常简单,从天空软件站下载Winzip90exe和winrar330scexe,在一个安装了Winrar的系统上,用鼠标右键选择下载的文件,运行右键菜单中的用Winrar打开的命令,然后把文件解压到我们的目标路径,如E:\tools目录,就可以了。然后分别对Winzip9和Winrar进行设置就可以了。运行winzip9目录中的Winzip32exe,进行winzip的设置。Winrar也是一样,运行Winrarexe,打开菜单选项-〉设置,d出一个对话框,选择标签--集成,逐项对Winrar设置。当拷贝到U盘而到新的机器上运行时,需要重复这些设置过程。这一类软件的特点是安装程序的工作完全可以由软件自身来完成,从而完全抛开安装程序,或者说安装程序的工作也就是解压缩。类似的软件还有一些,最简单的测试办法就是看看Winrar能否直接打开压缩的安装程序。也可以采用方法2,过程基本上和方法1一样。方法2就不具体说明了,仅仅指出有许多程序属于这个类别,如Myie2,GreenBrowser,qq,BPFTP Server,IDA_Pro_Standard_451770,FinalData,EASYRECOVERY 603,腾逊公司的TM等。
flashget是大家用得比较多的一个软件,可以多线程下载并且下载管理的功能也很方便,从天空软件站sky下载flashget160a 国际版,运行一下,然后取消安装。从上可以看出flashget160a国际版是使用Wise制作的安装程序,从网上下载wungui程序,非常容易的把安装程序解压缩到一个目录中,观察Maindir目录,其中有两个DLL文件Jccatchdll和fgiebardll,进一步察看这两个动态库文件的导出函数,可以知道这两个DLL文件都是自注册的COM组件,写一个批处理文件installbat来注册这两个DLL: REGSVR32 JCCATCHDLL /s REGSVR32 fgiebardll /s 经过测试,功能正常,并且可以从浏览器IE中用鼠标的右键菜单激活flashget,功能完全,下面考虑卸载过程。
运行Regeditexe,发现flashget在注册表中的路径是[HKEY_CURRENT_USER\\Sofare\\JetCar\\JetCar],写一个注册表文件unflashgetreg删除这个路径,如下:
REGEDIT4 ; flashget [-HKEY_CURRENT_USER\\Sofare\\JetCar\\JetCar] 同时写一个批处理文件uninstallbat来卸载这两个DLL文件并导入unflashgetreg: Regedit unflashgetreg /s REGSVR32 JCCATCHDLL /s /U REGSVR32 fgiebardll /s /U 随后就是删除一些我们用不到的文件,比如language目录的绝大多数欧洲的语言文件,这时候这个绿色版本就做好了。把制作好的绿色的flashget 拷贝到U盘上,需要用的时候,直接执行里面的installbat文件就可以了(注意,要在flashget的目录运行批处理文件),不需要任何文件拷贝。我看到有人提到用优化大师提取falshget的注册表,然后直接导入注册表来制作绿色的flashget,这样做是不行的,从我前面的步骤来看,注册2 个DLL文件必然在注册表中引入了绝对路径,那么如果直接提取注册表的话,就必须根据当前的路径来修改注册表中的路径,否则的话制作的绿色版的 flashget只能在固定的目录运行。在制作flashget绿色版的时候,我同时使用了方法3和方法6,使用方法3的目的就是避免安装程序对系统作的修改,这样可以直接在当前系统进行测试,而不需要到另外一个没有安装过flashget的系统测试。 Emeditor是方法1的一个反例。Emeditor可以从开发商主页emurasoft/下载,是一个简单好用的文本编辑器,支持多种配置,自定义颜色、字体、工具栏、快捷键设置,可以调整行距,避免中文排列过于紧密,具有选择文本列块的功能 (按ALT 键拖动鼠标),并允许无限撤消、重做,总之功能多多,使用方便,是替代记事本的最佳编辑器。下载emed404epxexe后,发现用Winrar可以打开,解压后,运行Emeditor,发现丢失了预定义的多种文本格式的语法配置,看来这样做不行,只好采用方法5了。请随我一步步进行,步骤如下:
1 扫描系统,制订系统快照。这里我仅仅记录当前系统的注册表(因为我认为Emeditor不会向系统目录拷贝文件,如果判断错误,就会导致"绿化"失败),运行ART(Advanced Registery Tracer),扫描一遍注册表。不要关闭ART。
2 安装Emeditor。随便安装到哪里,反正一会就卸载。安装好后,如果需要的话,更改配置,或者配置新的文件类型,例如我就增加了NFO文件类型,设定和NFO文件相关联的字符集,这样可以用Emeditor直接察看NFO文件,不需要专门的察看工具了。
3记录系统变化。再一次扫描系统,给系统作快照,从ART里面再一次扫描注册表,然后选择菜单命令Registry-〉pare here或者直接用键盘F10,点击那个save to redo file的按钮,存储为Emeditorreg文件,关闭ART。
4 复制并卸载。复制安装好的Emeditor目录到其他路径,然后卸载Emeditor程序。
5 分析。打开刚刚导出的Emeditorreg文件,这是一个巨大的reg文件,单单是REG文件就有1兆多,不过不用担心。阅读注册表后,删除和 emeditor无关的注册表项后,如仅仅和资源管理器相关的注册表部分,发现剩下的注册表文件可以分成3个部分。一部分在位于注册表的这个路径 [HKEY_LOCAL_MACHINE\\SOFTWARE\\EmSoft],里面大部分不涉及路径,只有一项记录了Emeditor的路径,就是\ "ModulePath\"=\"h:\\\\EmEditor4\\\\\";还有一大部分在注册表的这个路径下面 [HKEY_CURRENT_USER\\Sofare\\EmSoft\\EmEditor v3],里面有很多项都涉及了Emeditor的路径,如\"Tmpl\"=\"h:\\\\EmEditor4\\\\templatexml\";还有就是和Emeditor和txt文件后缀向关联的注册表设置,把Emeditor设置为IE中缺省的源代码察看工具的注册表设置以及注册COM组件 EMEDSHLDLL的注册表部分(和InProcServer32相关的就是)。
6 "绿化"。
1) 把位于注册表路径路径[HKEY_LOCAL_MACHINE\\SOFTWARE\\EmSoft]的内容存储到emeditor_HKLMreg文件中,把位于注册表路径[HKEY_CURRENT_USER\\Sofare\\EmSoft\\EmEditor v3]的内容存储到emeditor_HKCUreg文件中,把剩下的内容首先除掉COM组件EMEDSHLDLL的相关部分,然后存储到 emeditor_assocreg文件中。
2) 把emeditor_HKLMreg文件和emeditor_HKCUreg文件中涉及到路径的注册表内容抽取出来,存储到emeditorConfreg文件。
3) 把emeditor_assocreg文件和emeditorConfreg文件用INF的语法转换为INF文件,或者用一个免费小工具 reg2infexe自动转换,然后把转换得到的emeditor_associnf文件和emeditorConfinf文件中的路径h:\\ EmEditor4全部用%01%代替。下面是emeditorConfinf文件的内容:
[Version] Signature=\"CHICAGO\"
[DefaultInstall] AddReg=EmeditorConf_AddReg
lm,\"SOFTWARE\\EmSoft\\EmEditor v3\\Common\",\"ModulePath\",,\"%01%\\\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\C++\",\"Tmpl\",,\"%01%\\templatecpp\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\CSS\",\"Tmpl\",,\"%01%\\templatecss\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\HTML\",\"Tmpl\",,\"%01%\\template\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\Java\",\"Tmpl\",,\"%01%\\templatejava\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\javascript\",\"Tmpl\",,\"%01%\\templatejs\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\JSP\",\"Tmpl\",,\"%01%\\templatejsp\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\Perl\",\"Tmpl\",,\"%01%\\templatepl\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\PHP\",\"Tmpl\",,\"%01%\\templatephp\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\Python\",\"Tmpl\",,\"%01%\\templatepy\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\Ruby\",\"Tmpl\",,\"%01%\\templaterb\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\TeX\",\"Tmpl\",,\"%01%\\templatetex\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\VBScript\",\"Tmpl\",,\"%01%\\templatevbs\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\VBScript for EmEditor\",\"Tmpl\",,\"%01%\\templatevbee\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\Windows Script\",\"Tmpl\",,\"%01%\\templatewsf\"
cu,\"Sofare\\EmSoft\\EmEditor v3\\Config\\XML\",\"Tmpl\",,\"%01%\\templatexml\"
写一个批处理文件installbat,内容如下:
regedit emeditor_HKLMreg
regedit emeditor_HKCUreg
RUNDLL32EXE SETUPAPIDLL,InstallHinfSection DefaultInstall 128 \\emeditorConfinf
regsvr32 EMEDSHLDLL
RUNDLL32EXE SETUPAPIDLL,InstallHinfSection DefaultInstall 128 \\emeditor_associnf '
4) 把installbat,emeditorConfinf,emeditor_associnf,emeditor_HKLMreg,emeditor_HKCUreg5个文件存储到Emeditor的目录,删除其余的注册表文件。
问题一:如何在注册表中删除下载的软件 菜鸟就不要乱删了,删坏了注册表,就只能重装系统了。
最简单的就是,点“开始”,然后选“运行”,输入:regedit
然后回车确定。
打开注册表后,在菜单中点“查找”,然后输入你要删的软件名,把前面三个选项都打上勾,最后一个不要勾。
例如我们删QQ软件,就输入“腾讯QQ”(关键字一定要具有唯一的区别性,不可以只输入“QQ”两个字,否则将其它包含QQ这两个字母的键给删了。)
输入后就点“开始查找”,查找到一处,看一下是不是与“腾讯QQ”有关,是的话,就删,然后按F3,继罚查找,再看一下后删,一直到搜索完毕。
这样,基本上有关“腾讯QQ”的东西都给删了。
仅以此为例,根级自己的实际情况,灵活 *** 作。
问题二:如何找到某个软件的注册表,并删除? 删除注册表键值只能将软件的安装信息删除
但不能删除软件本身
首先单击开始-运行输入:regedit
打开注册表编辑器
点击编辑-查找或直接按键盘上的 F3键
然后将软件相关字符搜索(注意查看其路径是否为该软件,不要误删)
一般这个方法都是对付一些卸载不了的软件使用的
问题三:如何在注册表中手动删除软件残留痕迹 添加或删除程序在注册表的位置,运行输入regedit回车,打开注册表定位[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows\CurrentVersion\Uninstall]子键,在该子键下,可跟据已卸载的应用程序软件图标,删除相对应的软件图标和键值,重新启动电脑即可。
两种方法,上面的删除左面的,另一个是下面的方法。
开始/运行输入regedit回车打开注册表编辑器,选编辑/查找,你卸载软件的英文名,找到软件的键值项后删除(多次查找反复删除干净)。
不会有影响,我经常这样删除无法卸载的软件。
问题四:怎么进入注册表删除软件剩余? 开始-运行regedit-查找-输入软件相关字眼,查找,然后删除即可。
另外最好用优化大师删除注册表垃圾!
问题五:怎么通过注册表彻底删除电脑上的软件 要重注册表中卸载一种软件,也就是删除其相应的键值(注册信息),一般软件自身都带卸载程序,除非特殊情况下,如:卸载程序失效,或是一些嵌入式安装的软件需要到注册表里删除
“添加删除程序里”里安装的软件可以在注册表以下位置中找到
HKEY_LOCAL MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\UNINSTALL下面有许多键值,要想“删除/卸载”某些软件,只要删除相应名字的键即可
然后你就可以把要卸载的软件的安装文件夹移动到回收站,清理开始菜单了
问题六:没了注册表的程序怎么卸载 如果注册表信息没有了,那么在系统自带的卸载程序中就没有它的对应项了,
这时其实只要直接将安装的文件夹和开始菜单->所有程序中的快捷方式删除了就可以了;
如果你不太放心,而开始菜单->所有程序中又有软件的快捷方式,则可以用Windows优化大师,它在系统清理中提供了根据开始菜单中的信息分析卸载的功能。
问题七:如何在注册表中彻底删除软件的残余 电脑中卸载的软件的残余的文件的删除方法如下:
一、先是在开始菜单中,单击“运行”项,打开运行对话框,然后在运行对话框中输入regedit命令,打开注册表编辑器。
二、接着在注册表编辑器左侧窗格中依次展开HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall项,然后在Uninstall项下,所看到的内容为添加或删除程序中的软件信息。
三、例如要删除WinRAR软件,那么就找到带有WinRAR的注册表项,在找到的项中,右键单击选择“删除”。删除完毕后,再关闭掉注册表编辑器,最后重新启动一下计算机,设置就算生效了。
注册表定义:
注册表(Registry)实质上是一个庞大的数据库,它存储这下面这些内容:软、硬件的有关配置和状态信息,应用程序和资源管理器外壳的初始条件、首选项和卸载数据;计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联, 硬件的描述、状态和属性;计算机性能记录和底层的系统状态信息,以及各类其他数据。
问题八:怎么用注册表来删除卸载程序 1点击开始-运行,2输入 regedit,确定3点击 HEKY LOCAL MACINE4SOFTWARE5MICROSOFT6WINDOWS7CURRENT VERSION8UNINSTALL在这里你就可以找到你想要删除的,删除,重启 保存设置方法二川后单击一下你想卸载的软件--在旁边可以看到“UninstallString”的子键--双击这个子键,然后d出一个编辑字符串对话框--再把里面的键值复制一下然后回到桌面-点击开始--运行--在里面把刚刚复制到的键值粘贴到里面--回车~!这样就可以删除掉在添加删除里没有的程序~!当然,如果这里面没有你想卸载的程序的话~!那么也就是说那些程序并没有在注册表里注册,也就是说你可以直接删除了~!
问题九:win7系统怎样清理以下卸载的软件注册表 1添加或删除程序在注册表的位置,运行输入regedit回车
2打开注册表定位[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\windows\CurrentVersion\Uninstall]子键
3在该子键下,可跟据已卸载的应用程序软件图标,删除相对应的软件图标和键值,重新启动电脑即可
问题十:如何删除软件的注册信息 1打开注册表--编辑--查找--输入freezflv2MP3--把含有这个软件的名称的项都删了
2用优化大师的智能软件卸载找到这个软件的安装目录,选中其中一个文件,它就会分析与这个软件关联的所有文件,然后就能卸载得一干二净,我推荐使用这种方法
试试看
1应用程序一般在注册表这两个位置:
HKEY_LOCAL_MACHINE\SOFTWARE
HKEY_CURRENT_USER\Software
这两个键值记录了应用程序的安装信息,配置等;
2应用程序的卸载信息则在这里:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
修改注册表前,先导出注册表作备份,然后再修改。
注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件systemdat和userdat里,还有它们的备份systemda0和userda0。通过Windows目录下的regeditexe程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠winini,systemini和其他和应用程序有关联的ini文件来实现的
在windows *** 作系统家族中,systemini和winini这两个文件包含了 *** 作系统所有的控制功能和应用程序的信息,systemini管理计算机硬件而winini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在ini文件中,任何新程序都会被记录在ini文件中。这些记录会在程序代码中被引用。因为受winini和systemini文件大小的限制,程序员添加辅助的INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个excelini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在systemini和winini中只需要指出excelini的路径和文件名即可。
早在Dos和Win3x的时代,大部分的应用程序都是采用了 ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。systemini和winini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在ini文件中添加更多的参数项。这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改ini文件。然而,没有一个人在删除应用程序后删除ini文件中的相关设置,所以systemini和winini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的ini文件,然后指向特定的ini文件如winini和systemini文件。这样下来多个ini文件影响了系统正常的存取级别设置。如果一个应用程序的ini文件和WININI文件设置起冲突,究竟是谁的优先级更高呢?
注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位 *** 作系统和应用程序包括了所有功能下的东东。注册表是一套控制 *** 作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。
由此可见,注册表(Registry)是Windows9x/Me/NT/2000 *** 作系统、硬件设备以及客户应用程序得以正常运行和保存设置的核心“数据库”;是一个巨大的树状分层的数据库。它记录了用户安装在机器上的软件和每个程序的相互关联关系;它包含了计算机的硬件配置,包括自动配置的即插即用的设备和已有的各种设备说明、状态属性以及各种状态信息和数据等。
注册表都做些什么?
注册表是为Windows NT和Windows95中所有32位硬件/驱动和32位应用程序设计的数据文件。16位驱动在Windows NT下无法工作,所以所有设备都通过注册表来控制,一般这些是通过BIOS来控制的。在Win9x下,16位驱动会继续以实模式方式设备工作,它们使用systemini来控制。16位应用程序会工作在NT或者Win9x 下,它们的程序仍然会参考winini和systemini文件获得信息和控制。
在没有注册表的情况下, *** 作系统不会获得必须的信息来运行和控制附属的设备和应用程序及正确响应用户的输入。
在系统中注册表是一个记录32位驱动的设置和位置的数据库。当 *** 作系统需要存取硬件设备,它使用驱动程序,甚至设备是一个BIOS支持的设备。无BIOS支持的设备安装时必须需要驱动,这个驱动是独立于 *** 作系统的,但是 *** 作系统需要知道从哪里找到它们,文件名、版本号、其他设置和信息,没有注册表对设备的记录,它们就不能被使用。
当一个用户准备运行一个应用程序,注册表提供应用程序信息给 *** 作系统,这样应用程序可以被找到,正确数据文件的位置被规定,其他设置也都可以被使用。
注册表保存关于缺省数据和辅助文件的位置信息、菜单、按钮条、窗口状态和其他可选项。它同样也保存了安装信息(比如说日期),安装软件的用户,软件版本号和日期,序列号等。根据安装软件的不同,它包括的信息也不同。
然而,一般来说,注册表控制所有32位应用程序和驱动,控制的方法是基于用户和计算机的,而不依赖于应用程序或驱动,每个注册表的参数项控制了一个用户的功能或者计算机功能。用户功能可能包括了桌面外观和用户目录。所以,计算机功能和安装的硬件和软件有关,对所以用户来说项都是公用的。
有些程序功能对用户有影响,有些时作用于计算机而不是为个人设置的,同样的,驱动可能是用户指定的,但在很多时候,它们在计算机中是通用的。
注册表控制用户模式的例子有:
★控制面板功能;
★桌面外观和图标;
★网络参数;
★浏览器功能性和特征。
这些功能中的某些是和用户无关的,有些是针对用户的。
计算机相关控制项基于计算机名,和登陆用户无关。控制类型的例子是安装一个应用程序,不管是哪个用户,程序的可用性和存取是不变的,然而,运行程序图标依赖于网络上登陆的用户。网络协议可用性和优先权基于计算机,但是当前连接和用户信息相关。
这里是在注册表中基与计算机控制条目的一些例子:
★存取控制;
★登陆确认;
★文件和打印机共享;
★网卡设置和协议;
★系统性能和虚拟内存设置。
没有了注册表,Win9x和Windows NT 就不太可能存在。它们实在太复杂了,以致于用过去的ini文件无法控制,它们的扩展能力需要几乎无限制的安装和使用应用程序,注册表实现了它。然而,注册表比ini文件更复杂,理解它如何工作,它做什么和如何用它来做是有效管理系统的关键。
在系统中注册表控制所有32位应用程序和它们的功能及多个应用程序的交互,比如复制和粘贴,它也控制所有的硬件和驱动程序。虽然多数可以通过控制面板来安装和设置,理解注册表仍是做Windows NT和Win9x系统管理基本常识。
概括起来,注册表中存放着各种参数,直接控制着 Windows 的启动、硬件驱动程序的装载以及一些 Windows 应用程序的运行,从而在整个系统中起着核心作用。它包括:
(1)软、硬件的有关配置和状态信息,注册表中保存有应用程序和资源管理器外壳的初始条件、首选项和卸载数据。
(2)联网计算机的整个系统的设置和各种许可,文件扩展名与应用程序的关联,硬件部件的描述、状态和属性。
(3)性能记录和其它底层的系统状态信息,以及其它数据。
如果注册表受到了破坏,轻者使 Windows 的启动过程出现异常,重者可能会导致整个系统的完全瘫痪。因此正确地认识、使用,特别是及时备份以及有问题时恢复注册表,对Windows用户来说就显得非常重要。学会了注册表的知识以及相关应用,便能使你的电脑 *** 作更加得心应手!从而成为一位名副其实的电脑高手!
与注册表有关的术语:
①、注册表:是一个树状分层的数据库。从物理上讲,它是Systemdat和Userdat两个文件;从逻辑上讲,它是用户在注册表编辑器中看到的配置数据。
②、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,NTUSERDAT。而 Windows9x/Me/2000将所有注册表文件存入2个文件中:Systemdat和Userdat。它们是二进制文件,不能用文本编辑器查看。它们存在于Windows目录下,具有隐含、系统、只读属性。 Systemdat包含了计算机特定的配置数据,Userdat包含了用户特定的数据。Userdat文件的位置在以某个用户名登录时,其位于C:\Windows\profiles\用户名目录下,系统同时在C:\Windows目录下保留了一个缺省的Userdat文件,以备新用户使用。内部组织结构是一个类似于目录管理的树状分层的结构。
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下的浏览器里的目录下的文件,每个文件都会有自己特有的内容和属性。我们可以在注册表编辑器下很方便地添加、修改、查询和删除注册表的每一个关键字。关键字可以分为两类:一类是由系统定义,一般叫做“预定义关键字”;另一类是由应用程序定义的,根据应用软件的不同,登录项也就不同。在注册表中,所有的数据都是通过一种树状结构以键和子键的方式组织起来,十分类似于目录结构。每个键都包含了一组特定的信息,每个键的键名都是 和它所包含的信息相关的。如果这个键包含子键,则在注册表编辑器窗口中代表这个键的文件夹的左边将有“+”符号,以表示在这个文件夹中有更多的内容。如果这个文件夹被用户打开了,那么这个“+”就会变成“-”。 下面我们对系统预定义的六大根键简单地介绍一下。
1HKEY_USERS
该根键保存了存放在本地计算机口令列表中的用户标识和密码列表,即用户设置。每个用户的预配置信息都存储在HKEY_USERS根键中。HKEY_USERS是远程计算机中访问的根键之一。其内容取决于计算机是否激活了用户配置文件,若未激活用户配置文件,则可以看到称为DEFAULT的单一子键,该子键包括和所有用户相关的各种设置,并且和\Windows下的USERDAT文件相配合。若激活了用户配置文件并且正确地执行了登录,则还有一个“用户名”的子键,该用户名为用户登录的名称。
2HKEY_CURRENT_USER
该根键包含本地工作站中存放的当前登录的用户信息,包括用户登录用户名和暂存的密码(注:此密码在输入时是隐藏的)。用户登录Windows 98时,其信息从HKEY_USERS中相应的项拷贝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7个子关键字。其中除RemoteAccess”外,其余6个都为系统预定义。
AppEvents 这个子键里登记已注册的各种应用事件。
ControlPanel 它里面涉及到控制面板设置有关的内容。
InstallLocationsMRU windows安装路径的有关信息。
Keyboardlayout 关于键盘设置的信息。
Network 有关网络设置的信息。
RemoteAccess 安装IE 时建立的子关键字,包含该应用程序的有关信息。
Software 软件的有关信息。
3HKEY_CURRENT_CONFIG
该根键存放着定义当前用户桌面配置(如显示器等)的数据,最后使用的文档列表(MRU)和其他有关当前用户的Windows 98中文版的安装的信息。
4HKEY_CLASSES_ROOT
该键由多个子键组成,具体可分为两种:一种是已经注册的各类文件的扩展名,另一种是各种文件类型的有关信息。左栏中的子键就是各种已经注册的文件扩展名。 注册表内己经登记的文件扩展名中,有系统默认和应用程序自定义的扩展名。应用程序只有把自定义的扩展名在注册表中登记,系统才能识别和关联使用有关的文档,但只有经过注册的扩展名,系统才能自动关联。根据在Windows 98中文版中安装的应用程序的扩展名,该根键指明其文件类型的名称。
在第一次安装Windows 98中文版时,RTF(Rich Text Format)文件与写字板(WordPad)联系起来,但在以后安装了中文Word 60后,双击一个RTF文件时,将自动激活Word。存放在SYSTEMDAT中的HKEY_CLASSES_ROOT,将替代WININI文件中的[Extensions]小节中的设置项,它把应用程序与文件扩展名联系起来,它也替代了Windows 3x中的Regdat文件中的相似的设置项。
5HKEY_LOCAL_MACHINE
注册表的核心,计算机的各种硬件和软件的配置均存在于此。它包括以下八个部分:Config配置、Driver驱动程序、Enum即插即用、Hardware硬件、Network网络、Security安全、Software软件、System系统。每部分中又包括许多子键。该根键存放本地计算机硬件数据,此根键下的子关键字包括在SYSTEMDAT中,用来提供HKEY_LOCAL_MACHINE所需的信息,或者在远程计算机中可访问的一组键中。该根键中的许多子键与Systemini文件中设置项类似。
6HKEY_DYN_DATA
该根键存放了系统在运行时动态数据,此数据在每次显示时都是变化的,因此,此根键下的信息没有放在注册表中。
以上就是关于怎样修改某项程序的注册表全部的内容,包括:怎样修改某项程序的注册表、请问什么是注册表有什么作用在什么地方每个程序都有注册表吗、请问:把应用程序保存在注册表有什么作用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)