最近,笔者的一位朋友只要新安装软件,就会弹出“注册表容量已满”的报错对话框。朋友觉得很奇怪,难道注册表也有容量限制吗?那又如何突破这个容量限制呢?今天我们就来探讨查看注册表大小以及突破系统注册表容量限制的方法(以Windows 2000为例)。
注册表的功能
注册表中存放着系统中的许多重要数据,它帮助Windows控制硬件、应用软件、用户环境和Windows界面,很多软件和程序的参数都保存于此。如果没有注册表,操作系统将不能获得必须的信息来运行和控制应用程序、硬件设备及正确响应用户的输入。换句话说,注册表存储的是系统中的必要信息、各个应用程序加载的路径、系统启动时各程序运行的次序等等。如果注册表文件被删除则计算机就会无法正常启动。计算机中的注册表就好比人身体中的血管,它指引着血液向何处流动。
查询当前注册表文件的大小
我们可以通过保存文件查询法和系统特性查看法来了解当前注册表的容量大小。运行“regedit”命令打开注册表编辑器,会看到“我的电脑”下方有五大分支(如图1)。通过保存文件查询法所保存的注册表文件是这五个分支内容之和,而系统特性查看法中显示的容量只是HKEY_LOCAL_MACHINE中的一部分和其他四个分支的全部,所以差别比较大。不同用户登录系统桌面后使用系统特性查看法查看到的注册表大小也有很大区别。例如笔者用常用的user账户登录显示的注册表大小是20MB,而用默认的Administrator登录桌面后,由于长期不使用没有安装什么程序,它的注册表大小为19MB。
图 1
保存文件查询法
运行“regedit”命令打开注册表编辑器。在注册表编辑器中通过“注册表→导出注册表文件”菜单将注册表导出成文件。在保存注册表文件窗口中将“导出范围”选为“全部”,而不要用默认的选定分支。保存的文件是*.reg的形式。我们通过鼠标右键选择属性就可以看到保存后的REG文件的注册表容量大小了。笔者所用计算机的注册表容量大小为33MB。
系统特性查看法
在我的电脑上点击鼠标右键选择属性,打开“系统特性”窗口。选择“高级”标签,然后点击“性能选项”,打开性能选项窗。点击“更改”按钮打开“虚拟内存”设置窗口。在“注册表大小”处你会看到“当前注册表大小”以及“注册表最大值大小”的设置项。笔者计算机当前注册表大小为20MB,而默认情况下的最大值为55MB(如图2)。
图 2
小提示:默认情况下注册表最大值的大小是由两个因素决定的,一个是虚拟内存的大小,另一个则是当前注册表的大小。所以不同计算机的注册表最大值有所不同。
修改注册表容量大小
笔者的朋友遇到的问题就是当前注册表大小已经和注册表容量的最大值相同了,所以再安装新软件时由于要继续向注册表中添加内容,所以会出现“注册表容量已满”的信息。我们可以通过两种方法修改注册表容量上限,突破此限制。
方法一:系统特性修改法
在我的电脑上点击鼠标右键选择属性,打开“系统特性”窗口。选择“高级”标签,然后点击“性能选项”,打开性能选项窗口。点击“更改”按钮打开“虚拟内存”设置窗口。在“注册表大小”处你会看到“当前注册表大小”以及“注册表最大值大小”的设置项。我们将“注册表最大值大小”修改为我们希望的数值即可。这样就轻松突破了系统对注册表容量的限制。
方法二:注册表导入法
其实注册表大小的限制是通过注册表中某个键值来决定的。我们可以找到这个键值并对它进行修改即可。
打开注册表编辑器。找到“HKEY_LOCAL_MACHINE\SYSTEM\Cur
rentControlSet\Control\RegistrySizeLimit”这个键值,就是它的参数限制了注册表的大小。值得注意的是,在编辑RegistrySizeLimit这个键值时一定要在“基数”一栏中选为“十进制”。在输入数值数据时单位是字节,也就是说如果我们希望设置容量最大限制约为52MB,就输入52000000。
此外,我们还可以编辑一个REG文件实现注册表数值导入来完成修改注册表最大值的限制。Windows 2000中在记事本中编辑注册表文件内容如下(如果是Windows XP系统需要把注册表表头修改为WINDOWS REGISTRY EDITOR VERSION 5.00,其他一样即可)
REGEDIT4
(空一行)
[HKEY_LOCAL_MACHINE\System\C
urrentControlSet\Control]
"RegistrySizeLimit"="50000000"
将该文件存为后缀名为reg文件的注册表文件后双击该文件会自动将大小限制设置为50MB。现在,我们就可轻易扩大我们的注册表空间,突破注册表的限制了。