註冊表鍵值

註冊表鍵值

Windows系統註冊表項,通過編輯和修改可以改變或優化Windows操作系統相關功能和性能。

核心概述


註冊表(Registry;繁體中文版windows操作系統稱為登錄)是微軟公司從Windows 95操作系統開始(至目前最新Windows 10操作系統依然使用的是它),引入用於代替原先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
該主根鍵包含本地工作站中存放的當前登錄的用戶信息:包括用戶登錄用戶名和暫存的密碼(註:此密碼在輸入時是隱藏的)。用戶登錄Windows 98操作系統時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。
3:HKEY_CURRENT_CONFIG
該主根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,最後使用的文檔列表(MRU)和其他有關當前用戶的Windows 98操作系統中文版的安裝的信息。
4:HKEY_CLASSES_ROOT
該主根鍵包含註冊的所有ole信息和文檔類型,是從hkey_local_machine\software\classes映射複製的。根據在Windows 98操作系統中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。
5:HKEY_LOCAL_MACHINE
該主根鍵存放本地計算機硬體數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。
該根鍵中的許多子鍵與System.ini文件中設置項類似。
6:HKEY_DYN_DATA
該主根鍵註冊表項只存在於windows 95windows 98、windows 98 se、windows me以上幾種微軟操作系統當中,該主鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在註冊表中。
一個特殊的註冊表鍵值可以有子鍵,就像一個文件夾可以有子文件夾一樣。每個鍵可以有多個值與其相關聯,並存儲信息。每個值都會保存信息的一個部分,而每個部分都可以在需要時被獲取或更新。每個子鍵都保存特定與應用程序的信息,比如顏色設置,屏幕位置和尺寸,或可識別的文件擴展名。註冊表鍵值的最大深度是15。這是Windows CE操作系統的限制。
請注意存儲在註冊表中的信息很容易被其它的應用程序和用戶使用,因此不要用它來存儲安全數據(比如密碼)或者關鍵的應用程序信息。

數據項類型

二進位(BINARY)
在註冊表中,二進位是沒有長度限制的,可以是任意個位元組的長度。在註冊表編輯器中,二進位數據以十六進位的方式顯示出來,如:“CustomColors”的鍵值就是一個二進位數據,雙擊鍵值名,出現“編輯二進位數值”對話框,我們可以在二進位和十六進位之間進行切換。
DWORD值(DWORD)
DWORD值是一個32位(4個位元組,即雙字)長度的數值。在註冊表編輯器中,和二進位值相同,你將會發現系統以十六進位的方式顯示DWORD值,在編輯DWORD數值時,可以選擇用二進位、十進位或是十六進位的方式進行輸入。
字元串值(SZ)
在註冊表中,字元串值一般用來表示文件的描述、硬體的標識等。通常它由字母和數字組成。下圖文本輸入欄中的內容即為一個鍵值,它是一種字元串值類型。通過鍵值名、鍵值就可以組成一種鍵值項數據,這就相當於win.ini、system.ini文件中小節下的設置行。其實,使用註冊表編輯器將這些鍵值項數據導出后,其形式與.ini文件中的設置完全一樣。

數據類型

註冊表的鍵中包含著各種不同格式的數據。數據類型可以這樣來分類:
通用數據類型--windows操作系統自帶的註冊表編輯器——RegEdit.exe、RegEdt32.exe及其它絕大多數第三方註冊表編輯工具都支持,並能夠對之進行編輯的數據類型。
Windows NT內核各種操作系統專用數據類型--RegEdt32和另外幾個註冊表工具支持,並能夠對其進行編輯的數據類型。
組件/應用程序專用的特殊數據類型--註冊表工具支持這些數據類型,但是對於程序而言是有限度的。
用戶則只能將其作為二進位數進行編輯。
實際上,註冊表工具也可以對不支持的數據類型進行編輯,包括那些顯示為REG_UNKNOWN類型的數據。但是編輯僅能在二進位模式下進行,這就需要用戶對數據對象的格式非常了解。對於那些需要手工修改註冊表的用戶來說,理解每一種數據類型以及每一種類型數據的存儲格式是非常重要的。