【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)_第1頁
【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)_第2頁
【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)_第3頁
【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)_第4頁
【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、.【轉(zhuǎn)】系統(tǒng)注冊表結(jié)構(gòu)1.注冊表Reigstry的層次構(gòu)造注冊表Reigstry的層次構(gòu)造類似于硬盤中的目錄樹,我們可參見圖1.2。注冊表Registry根鍵子鍵子鍵鍵值項圖1.2表1.1是對圖1.2中的Registry層次構(gòu)造的解釋。表1.1圖1.2中的Registry層次構(gòu)造的解釋層次說明根鍵根鍵類似于硬盤上的根目錄。Registry有四個預定義的根鍵:1、HKEY_LOCAL_MACHINE 2、HKEY_USERS 3、HKEY_CURRENT_USER 4、HKEY_CLASSES_ROOT鍵與子鍵鍵和子鍵類似于文件管理器中看到的目錄構(gòu)造,在鍵下面是子鍵,就象目錄可以包含子目錄一樣鍵

2、值項鍵值項類似硬盤上樹型目錄的末端文件,鍵和子鍵可以包括一個或多個鍵值項。鍵值項由鍵值名、數(shù)據(jù)類型和鍵值三部分組成,其格式為:"鍵值名:數(shù)據(jù)類型:鍵值"。鍵值類型Registry中有如下三種鍵值類型:DWORD值:只允許一個鍵值,并且必須為1-8個16進制數(shù)據(jù)即雙字。字符串值:只允許一個鍵值,并且作為要存儲的字符串來解釋。二進制值:只允許一個值,是16進制數(shù)字串,每對作為一個字節(jié)值解釋。表1.1六大根鍵的作用在注冊表中,所有的數(shù)據(jù)都是通過一種樹狀構(gòu)造以鍵和子鍵的方式組織起來,非常類似于目錄構(gòu)造。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關(guān)的。假設(shè)這個鍵

3、包含子鍵,那么在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有"+"符號,以表示在這個文件夾中有更多的內(nèi)容。假設(shè)這個文件夾被用戶翻開了,那么這個"+"就會變成"-"。1、HKEY_USERS該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。2、HKEY_CURRENT_USER該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼注:此密碼在輸入時是隱藏的。用戶登錄Windows 98時,其信息從

4、HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。3、HKEY_CURRENT_CONFIG該根鍵存放著定義當前用戶桌面配置如顯示器等的數(shù)據(jù),最后使用的文檔列表MRU和其他有關(guān)當前用戶的Windows 98中文版的安裝的信息。4、HKEY_CLASSES_ROOT包含注冊的所有ole信息和文檔類型,是從hkey_local_machinesoftwareclasses復制的。根據(jù)在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。5、HKEY_LOCAL_MACHINE該根鍵存放本地計算機硬件數(shù)據(jù),此根鍵下的子關(guān)鍵字包括在SYSTEM。DA

5、T中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System。ini文件中設(shè)置項類似。6、KEY_DYN_DATA該根鍵存放了系統(tǒng)在運行時動態(tài)數(shù)據(jù),此數(shù)據(jù)在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中2.Registry與INI文件之間的關(guān)系Registry與Windows 98中的INI文件有許多相似之處。鍵或子鍵類似于INI文件中的小節(jié),一個鍵值項對應于INI文件中小節(jié)里的一條設(shè)置項。然而,Registry可以包括子鍵,而INI文件不支持小節(jié)的嵌套。Registry中的鍵值項還可以包含可執(zhí)行代碼,而在INI

6、文件中設(shè)置項只是簡單的字串。在同一臺計算機上有多個用戶,Registry可以存儲每個用戶的特性,而INI文件中卻不可能。假設(shè)您在Windows 3.x上晉級為Windows 98,那么安裝程序會從System.ini和Win.ini文件文件中選擇一些延續(xù)信息放入到注冊表中。不過,為了與以前的Windows版本上的老式16位應用程序保持兼容,INI文件中的有些設(shè)置項不能遷移到Windows 98的注冊表中。有關(guān)Win.ini、System.ini文件的構(gòu)造與設(shè)置項信息詳見附錄A。1.注冊表中Win.ini信息表1.2列出了Windows 98在晉級安裝過程中,從Win.ini文件中移出的部分設(shè)置

7、項,以及在注冊表中的位置。所有的子鍵都處于注冊表的HKEY_CURRENT_USER根鍵中。表1.2注冊表中Win.ini信息小節(jié)設(shè)置項HKEY_CURRENT_USER中的子鍵分支desktopGridGranularityControl Paneldesktop PatternControl Paneldesktop TileWallPaperControl PaneldesktopwindowsScreenSaveActiveControl Paneldesktop ScreenSaveTimeOutControl PaneldesktopSoundsSound Event NameAp

8、pEventsSchemesApps.DefaultSound Event Name.currentHeartsNameSoftwareMicrosoftWindowsCurrentVersionAppletsHearts 2.注冊表中的System.ini信息表1.3列出了Windows 98在晉級安裝過程中從System.ini文件中移出的設(shè)置項,以及在注冊表中的位置,這些子鍵都處于注冊表的HKEY_LOCAL_MACHINE根鍵中。根據(jù)機器的網(wǎng)絡(luò)配置,有些系統(tǒng)可能不會出現(xiàn)某些子鍵。表1.3注冊表中的System.ini信息小節(jié)設(shè)置項HKEY_LOCAL_MACHINE內(nèi)的子鍵分支Netw

9、orkCommentSystemCurrentControlSetServicesVxDVNETUP ComputerNameSystemCurrentControlSetControlComputerNameComputerName EnableSharing沒有子鍵入口LMAnnounceSystemCurrentControlSetServicesVxDVNETUP LogonDomain沒有子鍵入口Logon Validated沒有子鍵入口MaintainServerListSystemCurrentControlSetControlComputerNameComputerName R

10、econnect Reshare沒有子鍵入口沒有子鍵入口UsernameNetworkLogon WorkgroupSystemCurrentControlSetControlComputerNameComputerName386EnhNetwork沒有子鍵入口TransportSoftwareMicrosoftWindowsCurrentVersionNetworkReal Mode Net 1.2注冊表Registry的組成我們知道,在Windows 3.x中,提供了一個注冊數(shù)據(jù)庫Reg.dat,它是一個一般二進制文件,它可用Regedit.exe程序來維護。Reg.dat是一個非常軟弱的

11、數(shù)據(jù)文件,在Windows 3.x中增加或刪除O LE應用程序時,經(jīng)常受到不同程度的破壞。Windows 98改變了Windows 3.x的做法,采用了一種強大的注冊表Registry,它要比Reg.dat更為可靠。3.注冊表的文件組成注冊表Registry由五個文件組成的。介紹如下。1.系統(tǒng)配置注冊表文件System.dat在Windows 98的系統(tǒng)目錄中有一個隱含、系統(tǒng)、只讀文件System.dat,它是Windows 98注冊表的一部分,該文件具有如下作用:描繪單一的PC配置。描繪安裝在一單獨的PC上的消息。安裝即插即用類型的設(shè)備硬件配置,如設(shè)備的I/O地址、IRQ級和DM A通道等。

12、該文件的作用有點類似Windows 3.x中的System.ini文件。該文件在Windows 98的網(wǎng)絡(luò)運行狀態(tài)時,保存在本地的工作站或本地PC機中。在Windows 98安裝期間,Setup將檢查您的計算機上已安裝的硬件,然后在System.dat中建立適當?shù)呐渲庙棥<僭O(shè)從現(xiàn)有的Windows 3.x中安裝Windows 98,那么Setup將把現(xiàn)有的System.ini、Reg.dat文件中的部分設(shè)置項拷貝到System.dat中,詳見1.1.3節(jié)。在您使用"控制面板"的"系統(tǒng)"圖標查看硬件配置時,其窗口中所顯示的選項都是從System.dat中讀

13、取的,如圖1.3所示。圖1.3 2.系統(tǒng)配置注冊表備份文件System.da0 Windows 98的注冊表的一個主要特點就是可靠性強,不易損壞。這個特點靠的就是注冊表有備份文件。系統(tǒng)配置注冊表System.dat的備份文件為System.da0,該文件在System.dat文件遭到意外破壞時,將由系統(tǒng)自動拷貝為System.dat。3.用戶平臺配置注冊表文件User.dat在Windows 98的系統(tǒng)目錄中有一個隱含、系統(tǒng)、只讀文件User.dat,它也是Windows 98的注冊表的一部分,該文件具有如下作用:它定義用戶優(yōu)先權(quán),如用戶平臺配置等。特定于某一個用戶的應用程序的安裝信息。該文件

14、的作為類似于Windows 3.xWin.ini文件。當您在Windows 98中使用網(wǎng)絡(luò)時,User.dat必須放在網(wǎng)絡(luò)效勞器上。在您第一次輸入用戶標識和密碼時,安裝程序?qū)堰@些信息存儲在User.dat中。您的Windows 98的系列號也存儲在USER.DAT中。假設(shè)用戶在"控制面板"的"密碼"圖標中選擇了"用戶可自定義首選項及桌面設(shè)置登錄時,Windows自動啟用個人設(shè)置"這個選項后參見圖1.4所示,系統(tǒng)就會為每個用戶創(chuàng)立他自己的User.Dat,并且把它保存為C:WindowsProfiles用戶名User.dat。用戶每次

15、登錄后,他自給的User.dat會被調(diào)入到系統(tǒng)中。圖1.4 4.用戶平臺配置注冊表備份文件User.da0用戶平臺配置注冊表文件User.dat也有一個備份文件User.da0。當User.dat遭到意外破壞時,將由系統(tǒng)將User.da0拷貝為User.dat,從而使User.dat得到了恢復。5.網(wǎng)絡(luò)管理注冊表文件Config.pol假設(shè)您在Windows 98安裝了"系統(tǒng)策略編輯器"后,那么用戶可以使用Config.pol文件中的限制來決定系統(tǒng)如修改注冊表,也就是說,系統(tǒng)根據(jù)Config.pol中的設(shè)置對網(wǎng)絡(luò)用戶的操作作一些限制,這種限制在Windows 98被稱為&q

16、uot;策略"。Config.pol文件也是一個隱含、系統(tǒng)、只讀文件,它主要用于Windows 98的網(wǎng)絡(luò)用戶的管理方面的策略。6.網(wǎng)絡(luò)管理注冊表備份文件Config.po0同System.dat、User.dat有備份文件一樣,Config.pol也有一個備份文件Config.po0,它是一個隱含、系統(tǒng)、只讀文件。它存放在網(wǎng)絡(luò)效勞器中。1.2.2注冊表中的根鍵使用注冊表編輯器可以觀察注冊表中的根鍵,如圖1.5所示。圖1.5注意:在"運行"對話框中輸入RegEdit,然后單擊"確定"按鈕,那么可以運行注冊表編輯器,詳見第2章介紹。圖1.5顯示了

17、Windows 98中文版的注冊表Registry?System.dat、User.dat、Config.pol的數(shù)據(jù)組織構(gòu)造。圖1.5左窗格顯示的是注冊表的根鍵,這樣的根鍵共六個。?這些根鍵都是大寫的,并以HKEY_為前綴,?這種命令約定是以Win32 API的Registry函數(shù)的關(guān)鍵字的符號變量為根底的。雖然在注冊表中,六個根鍵看上去處于一種并列的地位,彼此毫無關(guān)系。但事實上,HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_US

18、ERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和HKEY_CURRENT_USER中所有的信息。在每次系統(tǒng)啟動后,系統(tǒng)就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。實際上,HKEY_LOCAL_MACHINESOFTWAREClasses就是HKEY_CLASSES_ROOT,為了用戶便于查看和編輯,系統(tǒng)專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIGSYSTEMCurrent Control就是HKEY_LOCAL_MACHINESYSTEMCurrent Control。HKEY

19、_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。HKEY_DYN_DATA保存了系統(tǒng)運行時的動態(tài)數(shù)據(jù),它反映出系統(tǒng)的當前狀態(tài),在每次運行時都是不一樣的,即便是在同一臺機器上。根據(jù)上面的分析,注冊表中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細介紹參見第3章。1.2.3注冊表中的鍵與子鍵在注冊表中參見圖1.5所示,所有的數(shù)據(jù)都是通過一種樹狀構(gòu)造以鍵和子鍵的方式組織起來,非常類似于目錄構(gòu)造。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所的信息相關(guān)的。假設(shè)這個鍵包含子鍵,那

20、么在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有"+"符號,以表示在這個文件夾中有更多的內(nèi)容。假設(shè)這個文件夾被用戶翻開了,那么這個"+"就會變成"-",如圖1.6所示。圖1.6 1.HKEY_USERS該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表。?每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。?HKEY_USERS是遠程計算機中訪問的根鍵之一。圖1.7為HKEY_USER子關(guān)鍵字連接情況。圖1.7 2.HKEY_CURRENT_USER該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存

21、的密碼注:此密碼在輸入時是隱藏的。用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。圖1.8為HKEY_CURRENT_USER根鍵下各個鍵之間連接的情況。圖1.8 3.HKEY_CURRENT_CONFIG該根鍵存放著定義當前用戶桌面配置如顯示器等的數(shù)據(jù),以及最后使用的文檔列表MRU,和其他有關(guān)當前用戶的Windows 98中文版的安裝的信息.圖1.9為HKEY_CURRENT_CONFIG子關(guān)鍵字之間的連接情況。圖1.9 4.HKEY_CLASSES_ROOT根據(jù)在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明

22、其文件類型的名稱。在第一次安裝Windows 98中文版時,RTFRich Text Format文件與寫字板WordPad?聯(lián)絡(luò)起來,但在以后安裝了中文Word 6.0后,?雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,?將替代WIN.INI文件中的Extensions?小節(jié)中的設(shè)置項,它把應用程序與文件擴展名聯(lián)絡(luò)起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設(shè)置項。?圖1.10顯示了HKEY_CLASSES_ROOT根鍵中包括的文件擴展名的情況。圖1.10 5.HKEY_LOCAL_MACHINE該根鍵存

23、放本地計算機硬件數(shù)據(jù),此根鍵下的子關(guān)鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設(shè)置項類似。圖1.11顯示了HKEY_LOCAL_MACHINE根鍵下的各個子鍵之間的情況。圖1.11 6.HKEY_DYN_DATA該根鍵存放了系統(tǒng)在運行時動態(tài)數(shù)據(jù),此數(shù)據(jù)在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中。圖1.12顯示了HKEY_DYN_DATA根鍵下的各個子鍵的情況。圖1.12 1.2.4注冊表中的鍵值項數(shù)據(jù)注冊表通過鍵和子鍵來管理各種信息。但是,注冊表中

24、的所有信息是以各種形式的鍵值項數(shù)據(jù)保存下來。在注冊表編輯器右窗格中,保存的都是鍵值項數(shù)據(jù)。這些鍵值項數(shù)據(jù)可分為如下三種類型:1.字符串值在注冊表中,字符串值一般用來表示文件的描繪、硬件的標識等。通常它由字母和數(shù)字組成,最大長度不能超過255個字符。在圖1.13所示中,"D:pwin98trident"即為鍵值名"a"的鍵值,它是一種字符串值類型的。同樣地,"ba"也為鍵值名"MRUList"的鍵值。通過鍵值名、鍵值就可以組成一種鍵值項數(shù)據(jù),這就相當于Win.ini、Ssytem.ini文件中小節(jié)下的設(shè)置行。其實,使

25、用注冊表編輯器將這些鍵值項數(shù)據(jù)導出后,其形式與INI文件中的設(shè)置行完全一樣了。詳見第3章。圖1.13 2.二進制值在注冊表中,二進制值是沒有長度限制的,可以是任意個字節(jié)長。在注冊表編輯器中,二進制以十六進制的方式顯示出來,如圖1.14所示。圖1.14在圖1.14中,鍵值名Wizard的鍵值"80 00 00 00"就是一個二進制注意:在如圖1.15所示的"編輯二進制值"對話框時,在編輯框的左邊輸入十六進制數(shù)時,其右邊將會顯示相應的ASCII碼。圖1.15 3.DWORD值DWORD值是一個32位4個字節(jié),即雙字長度的數(shù)值。在注冊表編輯器中,您將圖1.16

26、發(fā)現(xiàn)系統(tǒng)會以十六進制的方式顯示DWORD值,如圖1.16所示。注意:在編輯DWORD數(shù)值時,可以選擇用十進制還是16進制的方式進展輸入,如圖1.17所示。圖1.17 1.3注冊表的雙重入口在注冊表中經(jīng)常出現(xiàn)雙重入口分支,例如,有一些在HKEY_CLASSES_ROOT中的鍵同樣會在HKEY_LOCAL_MACHINE中出現(xiàn),如圖1.18所示。圖1.18假設(shè)這些一樣的分支出如今兩個不同的根鍵中,那么,哪個根鍵有效呢?注冊表的子鍵都有嚴格的組織。假設(shè)一樣的信息出如今超過一個的子鍵中,假設(shè)您只修改了一個子鍵,那么該修改是否作用于系統(tǒng)依賴于該子鍵的等級。一般來說,系統(tǒng)信息優(yōu)先于用戶等級。例如,一個設(shè)置項同時出如今HKEY_LOCAL_MACHINE和HKEY_USER子鍵中,通常由HKEY_LOCAL_MACHINE中的數(shù)據(jù)起作用。要注意的是,這種

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論