我教你學(xué)之注冊表基礎(chǔ)篇
注:本文和今后的系列文章中均以Windows XP的注冊表為例(與Windows.NET Server注冊表相同)來作介紹。
1.1 注冊表的概念
Windows的注冊表實(shí)質(zhì)上是一個(gè)龐大的數(shù)據(jù)庫,用來存儲計(jì)算機(jī)軟硬件的各種配置信息其內(nèi)容有幾下幾個(gè)方面:
- 軟硬件的有關(guān)配置和狀態(tài)信息,應(yīng)用程序和資源管理器外殼的初始條件、首選項(xiàng)和卸載數(shù)據(jù)。
- 計(jì)算機(jī)整個(gè)系統(tǒng)的設(shè)置和各種許可,文件擴(kuò)展名與應(yīng)用程序的關(guān)聯(lián),硬件的描述、狀態(tài)和屬性。
- 計(jì)算機(jī)性能記錄和底層的系統(tǒng)狀態(tài)信息以及各類其它數(shù)據(jù)。
1.2 注冊表與早期ini文件的區(qū)別
在早期的Windows操作系統(tǒng)中(如Windows 3.x)中是通過兩個(gè)擴(kuò)展名為ini的文件(system.ini和win.ini)來完成對軟硬件工作環(huán)境的配置的。其中,system.ini控制軟件,而win.ini控制桌面和應(yīng)用程序。ini文件的缺點(diǎn)是大小被限制在64KB以內(nèi),但是隨著操作系統(tǒng)的功能日益強(qiáng)大,應(yīng)用程序不斷增加,不得不增加新的ini文件來對應(yīng)用程序進(jìn)行控制。這使ini文件體積龐大,操作系統(tǒng)運(yùn)行速度降低,管理和維護(hù)也不盡方便。而且,ini文件容易被文本編輯器編輯,編輯過程易出錯(cuò)從而造成系統(tǒng)比較脆弱。另外,ini文件只存儲在本機(jī)上,想通過網(wǎng)絡(luò)進(jìn)行遠(yuǎn)程訪問幾乎是不可能的。
為了改進(jìn)以上不足,在Win 95 及其后的版本中,就采用注冊表管理配置信息的方法,它與ini文件的主要區(qū)別如下:
- 注冊表使用二進(jìn)制形式存儲數(shù)據(jù)。
- 注冊表支持主鍵,各級子鍵都有自己的“鍵值項(xiàng)”。
- 注冊表中的鍵值項(xiàng)不止是簡單的字串,而且包含著可執(zhí)行代碼。
- 在同一臺計(jì)算機(jī)上,注冊表允許存儲多個(gè)用戶的特性。
1.3 注冊表的功能
在Windows XP 操作系統(tǒng)中,注冊表作為一個(gè)保存驅(qū)動程序所有設(shè)置及存放位置的數(shù)據(jù)庫,與Windows XP系統(tǒng)及驅(qū)動程序間有著密切關(guān)系,扮演著操作系統(tǒng)與驅(qū)動程序連接者的角色。
當(dāng)操作系統(tǒng)訪問硬件設(shè)備時(shí),針對BIOS設(shè)置程序報(bào)告給Windows XP的設(shè)備,Windows XP會將適當(dāng)?shù)尿?qū)動程序裝在到系統(tǒng)中。這些驅(qū)動程序獨(dú)立于操作系統(tǒng),操作系統(tǒng)只需要它們的位置、文件名和版本號等,而這些信息全都存儲在注冊表的HEKY_LOCAL_MACHINEHARDWARE中。
同時(shí),注冊表也承當(dāng)著操作系統(tǒng)與應(yīng)用軟件的連接者。在應(yīng)用程序安裝時(shí),安裝程序會向注冊表中寫入相關(guān)的運(yùn)行設(shè)置。在應(yīng)用軟件運(yùn)行時(shí),就從注冊表里讀取所需要的設(shè)置數(shù)據(jù),以便找到所需程序或動態(tài)連接庫。
我們可以通過修改注冊表訂制個(gè)性化桌面;手動對某些軟硬件參數(shù)進(jìn)行修改而無需重啟系統(tǒng);通過刪除注冊表中的垃圾信息,可以提高計(jì)算機(jī)運(yùn)行速度;恢復(fù)受損的注冊表可解決系統(tǒng)故障和錯(cuò)誤;由注冊表可在網(wǎng)上檢查系統(tǒng)的配置和設(shè)置,實(shí)現(xiàn)遠(yuǎn)程管理系統(tǒng)。
1.4Windows XP注冊表文件位置及組成
Winndows XP注冊表的數(shù)據(jù)文件放在C:\Windows\System32\config文件夾內(nèi)分別是DEFAULT、SAM、SECURITY、SYSTEM、SOFTWARE和userdiff。如圖所示:

打開注冊表編輯器的方法是單擊[開始]|[運(yùn)行],在命令行中輸入“regedit”或“regedt32”,點(diǎn)[確定]或回車即可。
注冊表的結(jié)構(gòu)組成由根鍵、主鍵、子鍵和鍵值項(xiàng)等組成。如圖所示,根鍵(root key)是指在注冊表編輯器左邊窗口中以“HKEY”作為前綴開頭的字符串,因其處于注冊表的最頂層而被稱為根鍵,Windows XP注冊表中包括五大根鍵,都存于根目錄“我的電腦”下,分別為HKEY_CLASSES_ROOT, HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE, HKEY_USERS和HKEY_CURRENT_CONFIG。

主鍵(main key)是指根鍵下面與根鍵最近的鍵,主鍵通常包括一個(gè)或多個(gè)子鍵或值項(xiàng)。如圖中HKEY_CURRENT_USER中包括14個(gè)主鍵。
子鍵(sub key)是指包含在主鍵下面的鍵,其名稱是相對于主鍵而言的。每個(gè)主鍵下面通常包含若干子鍵,如主鍵AppEvents下面包含兩個(gè)子鍵。
鍵值項(xiàng)(value entry)是指顯示在注冊表編輯器右邊的各種信息,如圖所示,每個(gè)鍵值項(xiàng)包括名稱、類型和數(shù)據(jù)三部分。鍵值項(xiàng)的名稱可以由任意字符、數(shù)字、代表符合空格組成,但不能使用反斜杠。不同根鍵、主鍵和子鍵的鍵值項(xiàng)可以同名,但同一鍵中的鍵值項(xiàng)不能同名。鍵值項(xiàng)所定義的內(nèi)容就是該鍵值項(xiàng)的值,其數(shù)據(jù)最大可以占用64KB的空間。值的數(shù)據(jù)類型可以是字符串、二進(jìn)制值、DWORD(雙字節(jié))值等。
相關(guān)文章
DOS環(huán)境下玩轉(zhuǎn)Windows注冊表
DOS環(huán)境下玩轉(zhuǎn)Windows注冊表...2006-10-10二十九、教你備份與恢復(fù)Windows 2000注冊表
二十九、教你備份與恢復(fù)Windows 2000注冊表...2006-10-10我教你學(xué)之注冊表系統(tǒng)外觀修改實(shí)例(一)
我教你學(xué)之注冊表系統(tǒng)外觀修改實(shí)例(一)...2006-10-10