簡介
註冊表(Registry;繁體中文版windows作業系統稱為登錄)是微軟公司從Windows95作業系統開始(至目前最新Windows10作業系統依然使用的是它),引入用於代替原先Win32系統里.ini檔案,管理配置系統運行參數的一個全新的核心資料庫。在這個資料庫裡面整合集成了全部系統和應用程式的初始化信息;其中包含了硬體設備的說明、相互關聯的應用程式與文檔檔案、視窗顯示方式、網路連線參數、甚至有關係到計算機安全的網路的共享設定。它與老的win32系統裡面的ini檔案相比,具有方便管理,安全性較高、適於網路操作等特點。Regedit.exe是微軟提供的一個用於編輯註冊表的工具,它為所有windows作業系統自帶,因此可以說是最通用的註冊表編輯工具。由於Windows系統沒有提供運行這個應用程式的直觀選單項,因此用戶必須手動運行啟動它,啟動方法很簡單:首先打開'開始選單(Start)'裡面的'運行(Run)'選單項,在對話框中輸入regedit或regedt32.exe並點確定,這時將出現regedit或regedt32.exe的主界面。
註冊表存儲在一個層次結構的格式中,存儲在其中的元素都基於一定的邏輯順序。註冊表鍵值是註冊表中組織的基本單元。當用戶們在註冊表中存儲信息時,基於要存儲的信息的類型選擇適當的位置。
六大鍵根
在註冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關的。如果這個鍵包含子鍵,則在註冊表編輯器視窗中代表這個鍵的資料夾的左邊將有“+”符號,以表示在這個資料夾中有更多的內容。如果這個資料夾被用戶打開展開了,那么這個“+”就會變成“-”。1:HKEY_USERS
該主根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。HKEY_USERS是遠程計算機中訪問的根鍵之一。
2:HKEY_CURRENT_USER
該主根鍵包含本地工作站中存放的當前登錄的用戶信息:包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows98作業系統時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。
3:HKEY_CURRENT_CONFIG
該主根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows98作業系統中文版的安裝的信息。
4:HKEY_CLASSES_ROOT
該主根鍵包含註冊的所有ole信息和文檔類型,是從hkey_local_machine\software\classes映射複製的。根據在Windows98作業系統中文版中安裝的應用程式的擴展名,該根鍵指明其檔案類型的名稱。
5:HKEY_LOCAL_MACHINE
該主根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。
該根鍵中的許多子鍵與System.ini檔案中設定項類似。
6:HKEY_DYN_DATA
該主根鍵註冊表項只存在於windows95、windows98、windows98se、windowsme以上幾種微軟作業系統當中,該主鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在註冊表中。
一個特殊的註冊表鍵值可以有子鍵,就像一個資料夾可以有子資料夾一樣。每個鍵可以有多個值與其相關聯,並存儲信息。每個值都會保存信息的一個部分,而每個部分都可以在需要時被獲取或更新。每個子鍵都保存特定與應用程式的信息,比如顏色設定,螢幕位置和尺寸,或可識別的檔案擴展名。註冊表鍵值的最大深度是15。這是WindowsCE作業系統的限制。
請注意存儲在註冊表中的信息很容易被其它的應用程式和用戶使用,因此不要用它來存儲安全數據(比如密碼)或者關鍵的應用程式信息。
鍵值數據項
二進制(BINARY)
在註冊表中,二進制是沒有長度限制的,可以是任意個位元組的長度。在註冊表編輯器中,二進制數據以十六進制的方式顯示出來,如:“CustomColors”的鍵值就是一個二進制數據,雙擊鍵值名,出現“編輯二進制數值”對話框,我們可以在二進制和十六進制之間進行切換。
DWORD值(DWORD)
DWORD值是一個32位(4個位元組,即雙字)長度的數值。在註冊表編輯器中,和二進制值相同,你將會發現系統以十六進制的方式顯示DWORD值,在編輯DWORD數值時,可以選擇用二進制、十進制或是十六進制的方式進行輸入。
字元串值(SZ)
在註冊表中,字元串值一般用來表示檔案的描述、硬體的標識等。通常它由字母和數字組成。下圖文本輸入欄中的內容即為一個鍵值,它是一種字元串值類型。通過鍵值名、鍵值就可以組成一種鍵值項數據,這就相當於win.ini、system.ini檔案中小節下的設定行。其實,使用註冊表編輯器將這些鍵值項數據導出後,其形式與.ini檔案中的設定完全一樣。
註冊表數據
註冊表的鍵中包含著各種不同格式的數據。數據類型可以這樣來分類:
通用數據類型--windows作業系統自帶的註冊表編輯器——RegEdit.exe、RegEdt32.exe及其它絕大多數第三方註冊表編輯工具都支持,並能夠對之進行編輯的數據類型。
WindowsNT核心各種作業系統專用數據類型--RegEdt32和另外幾個註冊表工具支持,並能夠對其進行編輯的數據類型。
組件/應用程式專用的特殊數據類型--註冊表工具支持這些數據類型,但是對於程式而言是有限度的。
用戶則只能將其作為二進制數進行編輯。
實際上,註冊表工具也可以對不支持的數據類型進行編輯,包括那些顯示為REG_UNKNOWN類型的數據。但是編輯僅能在二進制模式下進行,這就需要用戶對數據對象的格式非常了解。對於那些需要手工修改註冊表的用戶來說,理解每一種數據類型以及每一種類型數據的存儲格式是非常重要的。