首頁 > 歡迎訪問金鍵盤網絡
菜鳥必看:注冊表基礎知識
發布時間:3-19

Windows注冊表是幫助Windows控制硬件、軟件、用戶環境和Windows界面的一套數據文件,注冊表包含在Windows目錄下兩個文件 system.dat和user.dat里,還有它們的備份system.da0和user.da0。通過Windows目錄下的regedit.exe 程序可以存取注冊表數據庫。在以前,在windows的更早版本(在Win95以前),這些功能是*win.ini,system.ini和其他和應用程序有關聯的.ini文件來實現的.

  在windows操作系統家族中,system.ini和win.ini這兩個文件包含了操作系統所有的控制功能和應用程序的信息, system.ini管理計算機硬件而win.ini管理桌面和應用程序。所有驅動、字體、設置和參數會保存在.ini文件中,任何新程序都會被記錄在. ini文件中。這些記錄會在程序代碼中被引用。因為受win.ini和system.ini文件大小的限制,程序員添加輔助的.iNi文件以用來控制更多的應用程序。舉例來說,微軟的Excel有一個excel.ini文件,它包含著選項、設置、缺省參數和其他關系到Excel運行正常的信息。在 system.ini和win.ini中只需要指出excel.ini的路徑和文件名即可。

  早在Dos和Win3.x的時代,大部分的應用程序都是采用了 ini 文件(初始化文件)來保存一些配置信息,如設置路徑,環境變量等。system.ini和win.ini控制著所有windows和應用程序的特征和存取方法,它在少數的用戶和少數應用程序的環境中工作的很好。隨著應用程序的數量和復雜性越來越大,則需要在.ini文件中添加更多的參數項。這樣下來,在一個變化的環境中,在應用程序安裝到系統中后,每個人都會更改.ini文件。然而,沒有一個人在刪除應用程序后刪除.ini文件中的相關設置,所以 system.ini和win.ini這個兩個文件會變的越來越大。每增加的內容會導致系統性能越來越慢。而且每次應用程序的升級都出現這樣的難題:升級會增加更多的參數項但是從來不去掉舊的設置。而且還有一個明顯的問題,一個.ini文件的很大尺寸是64KB。為了解決這個問題,軟件商自己開始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini文件。這樣下來多個.ini文件影響了系統正常的存取級別設置。如果一個應用程序的.ini文件和WiN.iNi文件設置起沖突,究竟是誰的優先級更高呢?

  注冊表很初被設計為一個應用程序的數據文件相關參考文件,很后擴展成對于32位操作系統和應用程序包括了所有功能下的東東。注冊表是一套控制操作系統外表和如何響應外來事件工作的文件。這些“事件”的范圍從直接存取一個硬件設備到接口如何響應特定用戶到應用程序如何運行等等。注冊表因為它的目的和性質變的很復雜,它被設計為專門為32位應用程序工作,文件的大小被限制在大約40mB。利用一個功能強大的注冊表數據庫來統一集中地管理系統硬件設施,軟件配置等信息,從而方便了管理,增強了系統的穩定性。很直觀的一個實例就是,為什么windows下的不同用戶可以擁有各自的個性化設置,如不同的墻紙,不同的桌面。這就是通過注冊表來實現的。

  由此可見,注冊表(Registry)是Windows9x/me/NT/2000操作系統、硬件設備以及客戶應用程序得以正常運行和保存設置的核心 “數據庫”;是一個巨大的樹狀分層的數據庫。它記錄了用戶安裝在機器上的軟件和每個程序的相互關聯關系;它包含了計算機的硬件配置,包括自動配置的即插即用的設備和已有的各種設備說明、狀態屬性以及各種狀態信息和數據等。

注冊表都做些什么?

  注冊表是為Windows NT和Windows95中所有32位硬件/驅動和32位應用程序設計的數據文件。16位驅動在Windows NT下無法工作,所以所有設備都通過注冊表來控制,一般這些是通過BiOS來控制的。在Win9x下,16位驅動會繼續以實模式方式設備工作,它們使用 system.ini來控制。16位應用程序會工作在NT或者Win9x 下,它們的程序仍然會參考win.ini和system.ini文件獲得信息和控制。

  在沒有注冊表的情況下,操作系統不會獲得必須的信息來運行和控制附屬的設備和應用程序及正確響應用戶的輸入。

  在系統中注冊表是一個記錄32位驅動的設置和位置的數據庫。當操作系統需要存取硬件設備,它使用驅動程序,甚至設備是一個BiOS支持的設備。無 BiOS支持的設備安裝時必須需要驅動,這個驅動是獨立于操作系統的,但是操作系統需要知道從哪里找到它們,文件名、版本號、其他設置和信息,沒有注冊表對設備的記錄,它們就不能被使用。

  當一個用戶準備運行一個應用程序,注冊表提供應用程序信息給操作系統,這樣應用程序可以被找到,正確數據文件的位置被規定,其他設置也都可以被使用。

  注冊表保存關于缺省數據和輔助文件的位置信息、菜單、按鈕條、窗口狀態和其他可選項。它同樣也保存了安裝信息(比如說日期),安裝軟件的用戶,軟件版本號和日期,序列號等。根據安裝軟件的不同,它包括的信息也不同。

  然而,一般來說,注冊表控制所有32位應用程序和驅動,控制的方法是基于用戶和計算機的,而不依賴于應用程序或驅動,每個注冊表的參數項控制了一個用戶的功能或者計算機功能。用戶功能可能包括了桌面外觀和用戶目錄。所以,計算機功能和安裝的硬件和軟件有關,對所以用戶來說項都是公用的。

  有些程序功能對用戶有影響,有些時作用于計算機而不是為個人設置的,同樣的,驅動可能是用戶指定的,但在很多時候,它們在計算機中是通用的。

  注冊表控制用戶模式的例子有:

  ★控制面板功能;

  ★桌面外觀和圖標;

  ★網絡參數;

  ★瀏覽器功能性和特征。

  這些功能中的某些是和用戶無關的,有些是針對用戶的。

  計算機相關控制項基于計算機名,和登陸用戶無關??刂祁愋偷睦邮前惭b一個應用程序,不管是哪個用戶,程序的可用性和存取是不變的,然而,運行程序圖標依賴于網絡上登陸的用戶。網絡協議可用性和優先權基于計算機,但是當前連接和用戶信息相關。

  這里是在注冊表中基與計算機控制條目的一些例子:

  ★存取控制;

  ★登陸確認;

  ★文件和打印機共享;

  ★網卡設置和協議;

  ★系統性能和虛擬內存設置。

  沒有了注冊表,Win9x和Windows NT 就不太可能存在。它們實在太復雜了,以致于用過去的.ini文件無法控制,它們的擴展能力需要幾乎無限制的安裝和使用應用程序,注冊表實現了它。然而,注冊表比.ini文件更復雜,理解它如何工作,它做什么和如何用它來做是有效管理系統的關鍵。

  在系統中注冊表控制所有32位應用程序和它們的功能及多個應用程序的交互,比如復制和粘貼,它也控制所有的硬件和驅動程序。雖然多數可以通過控制面板來安裝和設置,理解注冊表仍是做Windows NT和Win9x系統管理基本常識。

  概括起來,注冊表中存放著各種參數,直接控制著 Windows 的啟動、硬件驅動程序的裝載以及一些 Windows 應用程序的運行,從而在整個系統中起著核心作用。它包括:

  (1)軟、硬件的有關配置和狀態信息,注冊表中保存有應用程序和資源管理器外殼的初始條件、首選項和卸載數據。

  (2)聯網計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯,硬件部件的描述、狀態和屬性。

  (3)性能記錄和其它底層的系統狀態信息,以及其它數據。

  如果注冊表受到了破壞,輕者使 Windows 的啟動過程出現異常,重者可能會導致整個系統的完全癱瘓。因此正確地認識、使用,特別是及時備份以及有問題時恢復注冊表,對Windows用戶來說就顯得非常重要。學會了注冊表的知識以及相關應用,便能使你的電腦操作更加得心應手!從而成為一位名副其實的電腦高手!

與注冊表有關的術語:

 ?、?、注冊表:是一個樹狀分層的數據庫。從物理上講,它是System.dat和User.dat兩個文件;從邏輯上講,它是用戶在注冊表編輯器中看到的配置數據。

 ?、?、HKEY :“根鍵”或“主鍵”,它的圖標與資源管理器中文件夾的圖標有點兒相像。Windows98將注冊表分為六個部分,并稱之為 HKEY_name,它意味著某一鍵的句柄。(圖2)

 ?、?、key(鍵):它包含了附加的文件夾和一個或多個值。

 ?、?、subkey(子鍵):在某一個鍵(父鍵)下面出現的鍵(子鍵)。

 ?、?、branch(分支):代表一個特定的子鍵及其所包含的一切。一個分支可以從每個注冊表的頂端開始,但通常用以說明一個鍵和其所有內容?! 、?、value entry(值項):帶有一個名稱和一個值的有序值。每個鍵都可包含任何數量的值項。每個值項均由三部分組成:名稱,數據類型,數據。(如圖3)

  ★ 名稱:不包括反斜杠的字符、數字、代表符、空格的任意組合。同一鍵中不可有相同的名稱。

  ★ 數據類型:包括字符串、二進制、雙字三種。

  字符串(REg_SZ):顧名思義,一串ASCii碼字符。如“Hello World”,是一串文字或詞組。在注冊表中,字符串值一般用來表示文件的描述、硬件的標識等。通常它由字母和數字組成。注冊表總是在引號內顯示字符串?! 《M制(REg_BiNARY):如 F03D990000BC ,是沒有長度限制的二進制數值,在注冊表編輯器中,二進制數據以十六進制的方式顯示出來。

  雙 字(REg_DWORD):從字面上理解應該是Double Word ,雙字節值。由18個十六進制數據組成,我們可用以十六進制或十進制的方式來編輯。如 D1234567 。

  ★ 數據: 值項的具體值,它可以占用到64KB。

 ?、?、 Default(缺省值):每一個鍵至少包括一個值項,稱為缺省值(Default),它總是一個字串。

注冊表的內部組織結構及相互關系

  計算機配置和缺省用戶設置的注冊表數據在Windows NT中被保存在下面這五個文件中:DEFAULT,SAm,SECURiTY,SOFTWARE,SYSTEm,NTUSER.DAT。而 Windows9x/me/2000將所有注冊表文件存入2個文件中:System.dat和User.dat。它們是二進制文件,不能用文本編輯器查看。它們存在于Windows目錄下,具有隱含、系統、只讀屬性。 System.dat包含了計算機特定的配置數據,User.dat包含了用戶特定的數據。User.dat文件的位置在以某個用戶名登錄時,其位于C: Windowsprofiles用戶名目錄下,系統同時在C:Windows目錄下保留了一個缺省的User.dat文件,以備新用戶使用。內部組織結構是一個類似于目錄管理的樹狀分層的結構。

WiNDOWS的注冊表有六大根鍵,相當于一個硬盤被分成了六個分區。

  在“運行”對話框中輸入RegEdit,然后單擊“確定”按鈕,則可以運行注冊表編輯器。

  左窗格顯示的是注冊表的根鍵,這樣的根鍵共六個。這些根鍵都是大寫的,并以HKEY_為前綴,這種命令約定是以Win32 APi的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_mACHiNESOFTWAREClasses就是HKEY_CLASSES_ROOT,為了用戶便于查看和編輯,系統專門把它作為一個根鍵。同理,HKEY_CURRENT_CONFigSYSTEmCurrent Control就是HKEY_LOCAL_mACHiNESYSTEmCurrent Control。

  HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。

  HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一臺機器上。

  根據上面的分析,注冊表中的信息可以分為HKEY_LOCAL_mACHiNE和HKEY_USERS兩大類,這兩大類的詳細內容請看后面的介紹。

六大根鍵的作用

  注冊表采用“關鍵字”及其“鍵值”來描述登錄項及其數據。所有的關鍵字都是以“HKEY”作為前綴開頭。打個比喻來說,關鍵字更象Windows9X 下的瀏覽器里的目錄下的文件,每個文件都會有自己特有的內容和屬性。我們可以在注冊表編輯器下很方便地添加、修改、查詢和刪除注冊表的每一個關鍵字。關鍵字可以分為兩類:一類是由系統定義,一般叫做“預定義關鍵字”;另一類是由應用程序定義的,根據應用軟件的不同,登錄項也就不同。在注冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似于目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是和它所包含的信息相關的。如果這個鍵包含子鍵,則在注冊表編輯器窗口中代表這個鍵的文件夾的左邊將有“+”符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那么這個“+”就會變成“-”。 下面我們對系統預定義的六大根鍵簡單地介紹一下。

  1.HKEY_USERS

  該根鍵保存了存放在本地計算機口令列表中的用戶標識和密碼列表,即用戶設置。每個用戶的預配置信息都存儲在HKEY_USERS根鍵中。 HKEY_USERS是遠程計算機中訪問的根鍵之一。其內容取決于計算機是否激活了用戶配置文件,若未激活用戶配置文件,則可以看到稱為.DEFAULT 的單一子鍵,該子鍵包括和所有用戶相關的各種設置,并且和Windows下的USER.DAT文件相配合。若激活了用戶配置文件并且正確地執行了登錄,則還有一個“用戶名”的子鍵,該用戶名為用戶登錄的名稱。

  2.HKEY_CURRENT_USER

  該根鍵包含本地工作站中存放的當前登錄的用戶信息,包括用戶登錄用戶名和暫存的密碼(注:此密碼在輸入時是隱藏的)。用戶登錄Windows 98時,其信息從HKEY_USERS中相應的項拷貝到HKEY_CURRENT_USER中。HKEY_CURRENT_USER下面有7個子關鍵字。其中除RemoteAccess”外,其余6個都為系統預定義。

  AppEvents 這個子鍵里登記已注冊的各種應用事件。

  ControlPanel 它里面涉及到控制面板設置有關的內容。

  installLocationsmRU windows安裝路徑的有關信息。

  Keyboardlayout 關于鍵盤設置的信息。

  Network 有關網絡設置的信息。

  RemoteAccess 安裝iE 時建立的子關鍵字,包含該應用程序的有關信息。

  Software 軟件的有關信息。

3.HKEY_CURRENT_CONFig

該根鍵存放著定義當前用戶桌面配置(如顯示器等)的數據,很后使用的文檔列表(mRU)和其他有關當前用戶的Windows 98中文版的安裝的信息。

4.HKEY_CLASSES_ROOT

該鍵由多個子鍵組成,具體可分為兩種:一種是已經注冊的各類文件的擴展名,另一種是各種文件類型的有關信息。左欄中的子鍵就是各種已經注冊的文件擴展名。注冊表內己經登記的文件擴展名中,有系統默認和應用程序自定義的擴展名。應用程序只有把自定義的擴展名在注冊表中登記,系統才能識別和關聯使用有關的文檔,但只有經過注冊的擴展名,系統才能自動關聯。根據在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。

在次安裝Windows 98中文版時,RTF(Rich Text format)文件與寫字板(WordPad)聯系起來,但在以后安裝了中文Word 6.0后,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEm.DAT中的HKEY_CLASSES_ROOT,將替代WiN.iNi文件中的[Extensions]小節中的設置項,它把應用程序與文件擴展名聯系起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設置項。

5.HKEY_LOCAL_mACHiNE

注冊表的核心,計算機的各種硬件和軟件的配置均存在于此。它包括以下八個部分:Config配置、Driver驅動程序、Enum即插即用、 Hardware硬件、Network網絡、Security安全、Software軟件、System系統。每部分中又包括許多子鍵。該根鍵存放本地計算機硬件數據,此根鍵下的子關鍵字包括在SYSTEm.DAT中,用來提供HKEY_LOCAL_mACHiNE所需的信息,或者在遠程計算機中可訪問的一組鍵中。該根鍵中的許多子鍵與System.ini文件中設置項類似。

6.HKEY_DYN_DATA

該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在注冊表中

荊門市金鍵盤網絡技術有限公司
地址:泉口一路63號(電話:135-9793-6729)

ICP備案號:jmjjp.com:鄂ICP備15021394號-2 hbjjp.com:鄂ICP備15021394號-1 鄂公網安備 42080202000135號

荊門市金鍵盤網絡技術有限公司
地址:泉口一路63號(電話:135-9793-6729)

ICP備案號:jmjjp.com:鄂ICP備15021394號-2 hbjjp.com:鄂ICP備15021394號-1 鄂公網安備 42080202000135號

電話:135-9793-6729

服務
電話

金鍵盤網絡真誠為您服務電話:135-9793-6729

關注
微信

暫未提供
頂部
{关键词}