在Windows中重写registry文件

我一直在试图find一种方法来“碎片整理”我的Windows机器上的registry 。 首先,这是否有意义? 这样做有什么好处? (在superuser.com没有太多的爱)其次,我正在寻找一种方法来重写与Windows API的C / C + +的registry。 有没有一种方法来读取registry,并将其写入到一个新的文件中去除未使用的字节? (我可能必须写入新的文件,然后启动到另一个操作系统/磁盘,才能覆盖原来的…但我愿意冒这个险。)

微软的PageDefrag就是这么做的,因为它在页面上声明:“ PageDefrag使用标准文件碎片整理API对文件进行碎片整理”。

(链接文章的副本在这里,因为在典型的MSDN风格,他们的链接已经死了。)

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命令行工具

一个命令行工具,允许读取和写入脱机注册表配置单元。

读取值应该是可能的。

但是我从来没有看过注册表文件如何写入磁盘的任何规范,除非你能找到一个你不得不在你的操作系统中反向设计这些文件(可能是XP和7之间的差异等)。 那么你必须记住,注册表不只是一个文件,它是多个文件,其中一些属于某些用户,我认为他们使用SID而不是用户名,所以即使你把它们移动到一台新的计算机,你必须请确保它是相同的操作系统版本与相同的用户设置相同的SIDs。

所有这一切都很少或没有获得,所以我同意超级用户的意见,这是没有意义的。