二進制(REG_BINARY):如F03D990000BC,是沒有長度限制的二進制數值,在登錄檔編輯器中,二進制數據以十六進制的方式顯示出來。
雙字(REG_DWORD):從字面上理解應該是DoubleWord,雙字節值。由1-8個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如D1234567。
數據:值項的具體值,它可以佔用到64KB。
Default(預設值):每一個鍵至少包括一個值項,稱為預設值(Default),它總是一個字串。
登錄檔的內部組織結構及相互關俙:
電腦配置和預設用戶設置的登錄檔數據在WindowsNT中被保存在下面這五個文件中:DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER.DAT。
而Windows9x/Me/2000將所有登錄檔文件存入2個文件中:System.dat和User.dat。它們是二進制文件,不能用文本編輯器查看。它們存在於Windows目錄下,具有隱含、系統、隻讀屬性。System.dat包含了電腦特定的配置數據,User.dat包含了用戶特定的數據。User.dat文件的位置在以某個用戶名登錄時,其位於C:\Windows\profiles\用戶名目錄下,系統同時在C:\Windows目錄下保留了一個預設的User.dat文件,以備新用戶使用。內部組織結構是一個類似於目錄管理的樹狀分層的結構。
WINDOWS的登錄檔有六大根鍵,相當於一個硬碟被分成了六個分區。
在“運行”對話框中輸入RegEdit,然後單擊“確定”按鈕,則可以運行登錄檔編輯器。
左窗格顯示的是登錄檔的根鍵,這樣的根鍵共六個。這些根鍵都是大寫的,並以HKEY_為前綴,這種命令約定是以Win32API 的Registry函數的關鍵字的符號變量為基礎的。
雖然在登錄檔中,六個根鍵看上去處於一種並列的地位,彼此毫無關系。但事實上,HKEY_CLASSES_ROOT和 HKEY_CURRENT_CONFIG中存放的信息都是HKEY_LOCAL_MACHINE中存放的信息的一部分,而HKEY_CURRENT_USER中存放的信息只是HKEY_USERS存放的信息的一部分。HKEY_LOCAL_MACHINE包括HKEY_CLASSES_ROOT和 HKEY_CURRENT_USER中所有的信息。在每次系統啟動後,系統就映射出HKEY_CURRENT_USER中的信息,使得用戶可以查看和編輯其中的信息。
實際上,HKEY_LOCAL_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,為了用戶便於查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\CurrentControl就是HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl。
HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。
HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一台機器上。
根據上面的分析,登錄檔中的信息可以分為HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。
六大根鍵的作用
登錄檔採用“關鍵字”及其“鍵值”來描述登錄項及其數據。所有的關鍵字都是以“HKEY”作為前綴開頭。打個比喻來說,關鍵字更像Windows9X下的瀏覽器裡的目錄下的文件,每個文件都會有自己特有的內容和屬性。我們可以在登錄檔編輯器下很方便地添加、修改、查詢和刪除登錄檔的每一個關鍵字。關鍵字可以分為兩類:一類是由系統定義,一般叫做“預定義關鍵字”;另一類是由應用程式定義的,根據應用軟體的不同,登錄項也就不同。
在登錄檔中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關的。如果這個鍵包含子鍵,則在登錄檔編輯器窗口中代表這個鍵的文件夾的左邊將有“+”符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個“+”就會變成“-”。
下面我們對系統預定義的六大根鍵簡單地介紹一下。
HKEY_USERS
該根鍵保存了存放在本地電腦帳號列表中的用戶標識和密碼列表,即用戶設置。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程電腦中訪問的根鍵之一。其內容取決於電腦是否啟動了用戶配置文件,若未啟動用戶配置文件,則可以看到稱為*.DEFAULT的單一子鍵,該子鍵包括和所有用戶相關的各種設置,並且和\Windows下的USER.DAT文件相配合。若啟動了用戶配置文件並且正確地執行了登錄,則還有一個“用戶名”的子鍵,該用戶名為用戶登錄的名稱。
HKEY_CURRENT_USER
該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(注:此密碼在輸入時是隱藏的)。用戶登錄Windows98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7 個子關鍵字。其中除RemoteAccess外,其餘6個都為系統預定義。
AppEvents這個子鍵裡登記已注冊的各種應用事件。
ControlPanel它裡面涉及到控制面板設置有關的內容。
InstallLocationsMRUwindows安裝路徑的有關信息。
Keyboardlayout關於鍵盤設置的信息。
Network有關網路設置的信息。
RemoteAccess安裝IE時建立的子關鍵字,包含該應用程式的有關信息。
Software軟體的有關信息。
HKEY_CURRENT_CONFIG
該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows98中文版的安裝的信息。
HKEY_CLASSES_ROOT
該鍵由多個子鍵組成,具體可分為兩種:一種是已經注冊的各類文件的擴展名,另一種是各種文件類型的有關信息。左欄中的子鍵就是各種已經注冊的文件擴展名。登錄檔內己經登記的文件擴展名中,有系統默認和應用程序自定義的擴展名。
應用程式只有把自定義的擴展名在登錄檔中登記,系統才能識別和關聯使用有關的文檔,但只有經過注冊的擴展名,系統才能自動關聯。根據在Windows98中文版中安裝的應用程式的擴展名,該根鍵指明其文件類型的名稱。
在第一次安裝Windows98中文版時,RTF(RichTextFormat)文件與寫字板(WordPad)聯系起來,但在以後安裝了中文Word6.0後,雙擊一個RTF文件時,將自動啟動Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows3.x中的Reg.dat文件中的相似的設置項。
HKEY_LOCAL_MACHINE
登錄檔的核心,電腦的各種硬體和軟體的配置均存在於此。它包括以下八個部分:Config配置、Driver驅動程式、Enum即插即用、Hardware硬體、Network網路、Security安全、Software軟體、System系統。
每部分中又包括許多子鍵。該根鍵存放本地電腦硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供 HKEY_LOCAL_MACHINE所需的信息,或者在遠程電腦中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設置項類似。
HKEY_DYN_DATA
該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在登錄檔中。
留言列表