這個其實發(fā)在這里有點不合適,因為在.NET環(huán)境下本身很多數(shù)據(jù)都采用xml格式化,存儲在本地,另一方面是.net的類庫也非常的靈活,對注冊表操作非常方便,沒有必要畫蛇添足來這么一個包裝的類,但是如果你用 vc++ , WIN32 API ,做開發(fā)的時候,你會發(fā)現(xiàn)要對注冊表操作非常的困難,更讓人寒心的是,它居然沒有提供對注冊表鍵的重命名,在NTDLL.dll 中有一個可以替代的API:NTRenameKey, 但是它只有winXP之后的操作系統(tǒng)才提供,所以,筆者在這里提供這樣一個操作類,主要是彌補了 WIN32 API 在這方面的不足。如果讀者有興趣的話可以去看 Dan Madden 寫的一篇文章: http://www.codeproject.com/KB/system/NtRegistry.aspx 但是他的項目必須要用到MFC的類庫,感覺不爽。
廢話到此為止。
主要方法:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->
bool
?ExistKey(HKEY?hKey,?
const
?LPTSTR?subKey)?
const
; //是否存在這樣一個鍵
? bool ?KeyRename(HKEY?hKey,?LPTSTR?lpRootKey,?LPTSTR?lpOldName,?LPTSTR?lpNewName); // hKey 為HKEY_* 之一, 把 lpRootKey下面的 lpOldName名字改成 lpNewName , 比如要把SOFTWARE\\*\\subkey\\TEST改成 SOFTWARE\\*\\subkey\\renamed, 參數(shù)設(shè)置應(yīng)該如下: lpRootKey =? SOFTWARE\\*\\subkey, lpOldName = TEST, lpNewName= renamed
bool
?CopyKeyValues(HKEY?hKey,?
const
?LPTSTR?lpSourceKey,?
const
?LPTSTR?lpDestKey)?
const
; //把
lpSourceKey
鍵的所有值,復(fù)制給
lpDestKey
bool
?DeleteKey(HKEY?hKey,?
const
?LPTSTR?lpSubKey)?
const
;// 刪除
lpSubKey下所有的鍵,子鍵,值
bool
?HasSubKey(HKEY?hKey,?
const
?LPTSTR?lpSubKey)?
const
; //是否有子鍵

? bool ?KeyRename(HKEY?hKey,?LPTSTR?lpRootKey,?LPTSTR?lpOldName,?LPTSTR?lpNewName); // hKey 為HKEY_* 之一, 把 lpRootKey下面的 lpOldName名字改成 lpNewName , 比如要把SOFTWARE\\*\\subkey\\TEST改成 SOFTWARE\\*\\subkey\\renamed, 參數(shù)設(shè)置應(yīng)該如下: lpRootKey =? SOFTWARE\\*\\subkey, lpOldName = TEST, lpNewName= renamed



代碼下載:
我是下載鏈接
所有代碼在vc6.0 windows XP下測試通過。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
