2010-06-17 93 views
4

我一直在试图找到我的Windows机器上的方式来"defragment" the registry。首先,这是否有意义?这样做的好处? (在superuser.com上没有太多的爱)其次,我正在寻找一种使用Windows API的C/C++重写注册表的方法。有没有办法读取注册表,并将其写入一个新的文件中,以避免沿途使用未使用的字节? (我可能会写新的文件,然后引导到另一个OS /磁盘之前,我可以覆盖原来的......但我愿意承担这个风险。)重写注册表文件在Windows

+0

Downvoters,解释。我已经尝试过superuser.com。如果你认为这是这个问题的地方,那么投票结束。 – 2010-06-17 09:41:30

回答

2

微软PageDefrag正是这样做的,因为它的网页上指出:“PageDefrag使用标准文件碎片整理API来整理文件。

(链接的文章的副本here因为在典型的MSDN风格他们的链接是死的)

+0

这里有用的信息。但是,并不是我所期待的。我实际上正在寻找一种实用程序,它将检查注册表文件中未使用的空间并摆脱它。 – 2010-06-17 11:21:57

+5

根据我的“windows内幕”一书; “您可以通过备份压缩注册表,并使用Windows备份实用程序使用的Windows RegSaveKey和RegReplaceKey函数来恢复注册表。” – 2010-06-17 11:41:20

+0

Alex是正确的;另请参阅http://technet.microsoft.com/en-us/library/cc750583.aspx – Luke 2010-06-17 19:44:14

0

读值应该是可能的。

但我从来没有见过的注册表文件的方式写入到磁盘的所有规格,除非你能找到一个你不得不逆向工程这些文件在您的操作系统(可能是XP和7等之间的差异) 。然后,你必须记住,注册不只是一个文件,它的多个文件,其中一些属于某些用户,我认为他们使用的SID而不是用户名,以便即使您将它们移动到一个新的电脑,你必须请确保它是相同的用户使用相同的SID设置的操作系统版本。

这个很少或没有收获,所以我会用超级用户,它是没有意义意见一致。

2

http://www.larshederer.homepage.t-online.de/erunt/ - NTREGOPT NT注册表优化

类似于Windows 9x/Me中,在基于NT的系统注册表文件可以随着时间的推移变得支离破碎,比必要占用硬盘 磁盘上更多的空间,降低整体性能。您应该定期使用NTREGOPT实用程序 ,但特别是在安装 或卸载程序后,要尽量减少注册表文件的大小并优化注册表访问。 该程序通过重新创建每个注册表配置单元“从头开始”, 从而消除可能由先前的 修改或删除的键留下的任何松弛空间。

http://reboot.pro/index.php?showtopic=11212 - Offreg.dll MS WDK脱机注册表库

脱机注册表库(Offreg.dll)用于修改活动系统注册表之外的注册表配置单元。此库适用于注册表更新方案,例如为操作系统映像提供服务。该库支持从Windows XP开始的注册表配置单元格式。 开发商观众

http://reboot.pro/topic/11312-offline-registry/ - 离线注册MS WDK命令行工具

一个命令行工具,将允许读取和写入到离线的注册表配置单元。