2010-06-17 45 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命令行工具

一個命令行工具,將允許讀取和寫入到離線的註冊表配置單元。