2016-05-12 83 views
0

我當前正在嘗試在C#(.NET)中編寫能夠備份整個Windows註冊表(包括像HKEY_CURRENTUSER這樣的配置單元)的程序,並將其與當前Windows新/更改/刪除鍵的註冊表。它應該能夠指出更改的確切密鑰,類似於FileSystemWatcher。如果它能夠提供某種像FileSystemWatcher一樣的活飼料,那將是最好的。但只要我能夠發揮其作用,我也願意接受其他想法。備份整個註冊表並與當前註冊表進行比較

我試圖尋找到WMI來監視註冊表項更改,但它不適用於HKEY_CLASSES_ROOT和HKEY_CURRENT_USER,這也是我需要監視。

有沒有人有任何想法我可以做到這一點?如果有人能幫助我,我會很感激。

回答

0

解決該問題最簡單的嘗試是將註冊表導出到文本文件之前和之後,並對這些文件進行文本比較。

與(0123)使用reg export創建的文件(詞彙)比較的最大問題是您並不總是保證這些密鑰會顯示相同的順序(取決於導出時存在哪些密鑰),更糟糕的是,可以表示爲REG_BINARY,即使它是一個字符串。 IIRC,我見過一個關鍵字被表示爲REG_BINARY一次,另一個是REG_SZ的導出示例。這將完全阻礙詞彙比較。恕我直言,你最好打賭是創建你自己的導出方法(使用遞歸不是非常困難),要麼以有序的文本格式保存註冊表數據,要麼在內存中進行比較。