那些年我們學習的註冊表

記得真正下功夫學習註冊表是培訓PTE的時候了,當時老師挑了幾個註冊表,讓我們記住路徑,有空了把那些給整理出來。今天我們來聊聊註冊表的基礎知識。

什麼是註冊表? 
從Windows 95開始,Microsoft在Windows中引入了註冊表(英文爲REGISTRY)的概念(實際上原來在Windows NT中已有此概念)。註冊表是Windows 95及Windows 98的核心數據庫,表中存放着各種參數,直接控制着Windows的啓動、硬件驅動程序的裝載以及一些Windows應用程序運行的正常與否,如果該註冊表由於鞭種原因受到了破壞,輕者使Windows的啓動過程出現異常,重者可能會導致整個Windows系統的完全癱瘓。因此正確地認識、修改、及時地備份以及有問題時恢復註冊表,對Windows用戶來說就顯得非常重要了。 

★如何打開註冊表?(在修復註冊表前請備份) 
點“開始”→運行→輸入“regedit”→確定 

★一、註冊表的結構劃分及相互關係 
WINDOWS的註冊表有六大根鍵,相當於一個硬盤被分成了六個分區。 
在“運行”對話框中輸入RegEdit,然後單擊“確定”按鈕,則可以運行註冊表編輯器。 

Windows 98中文版的註冊表Registry(System.dat、User.dat、Config.pol)的數據組織結構。 
註冊表的根鍵共六個。這些根鍵都是大寫的,並以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_MACHINE\SOFTWARE\Classes就是HKEY_CLASSES_ROOT,爲了用戶便於查看和編輯,系統專門把它作爲一個根鍵。同理,HKEY_CURRENT_CONFIG\SY-STEM\Current Control就是HKEY_LOCAL_MACHINE\SYSTEM\Current Control。 
HKEY_USERS中保存了默認用戶和當前登錄用戶的用戶信息。HKEY_CURRENT_USER中保存了當前登錄用戶的用戶信息。 
HKEY_DYN_DATA保存了系統運行時的動態數據,它反映出系統的當前狀態,在每次運行時都是不一樣的,即便是在同一臺機器上。 
根據上面的分析,註冊表中的信息可以分爲HKEY_LOCAL_MACHINE和HKEY_USERS兩大類,這兩大類的詳細內容請看後面的介紹。 

★二、六大根鍵的作用 
在註冊表中,所有的數據都是通過一種樹狀結構以鍵和子鍵的方式組織起來,十分類似於目錄結構。每個鍵都包含了一組特定的信息,每個鍵的鍵名都是 和它所包含的信息相關的。如果這個鍵包含子鍵,則在註冊表編輯器窗口中代表這個鍵的文件夾的左邊將有“+”符號,以表示在這個文件夾中有更多的內容。如果這個文件夾被用戶打開了,那麼這個“+”就會變成“-”。 

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中文版的安裝的信息。圖5爲HKEY_CURRENT_CONFIG子關鍵字之間的連接情況。 

4.HKEY_CLASSES_ROOT 
根據在Windows 98中文版中安裝的應用程序的擴展名,該根鍵指明其文件類型的名稱。 
在第一次安裝Windows 98中文版時,RTF(Rich Text format)文件與寫字板(WordPad)&127;聯繫起來,但在以後安裝了中文Word 6.0後,雙擊一個RTF文件時,將自動激活Word。存放在SYSTEM.DAT中的HKEY_CLASSES_ROOT,將替代WIN.INI文件中的[Extensions]&127;小節中的設置項,它把應用程序與文件擴展名聯繫起來,它也替代了Windows 3.x中的Reg.dat文件中的相似的設置項。 

5.HKEY_LOCAL_MACHINE 
該根鍵存放本地計算機硬件數據,此根鍵下的子關鍵字包括在SYSTEM.DAT中,用來提供HKEY_LOCAL_MACHINE所需的信息,或者在遠程計算機中可訪問的一組鍵中。 
該根鍵中的許多子鍵與System.ini文件中設置項類似。圖7顯示了HKEY_LOCAL_MACHINE根鍵下的各個子鍵之間的情況。 

6.HKEY_DYN_DATA 
該根鍵存放了系統在運行時動態數據,此數據在每次顯示時都是變化的,因此,此根鍵下的信息沒有放在註冊表中。圖8顯示了HKEY_DYN_DATA根鍵下的各個子鍵的情況。 

★三、註冊表部分重要內容 
註冊表是一個大型數據庫Registry。要詳細地分析該數據庫,不是一兩頁就能介紹完。我曾經用了半年多時間分析此數據庫結構。下面只介紹部分重要內容。 

(一)HKEY_CLASS_ROOT 
1.HKEY_CLASS_ROOT/Paint.Pricture/DefaultIcon雙擊窗口右側的默認字符串,在打開的對話框中刪除原來的“鍵值”,輸入%1。重新啓動後,在“我的電腦”中打開Windows目錄,選擇“大圖標”,然後你看到的Bmp文件的圖標再也不是千篇一律的MSPAINT圖標了,而是每個Bmp文件的略圖(前提是未安裝ACDSee等看圖軟件)。 

(二)HKEY_CURRENT_USER 
1.HKEY_CURRENT_USER\Control Panel\Desktop 中新建串值名MenuShowDelay=0 可使“開始”菜單中子菜單的彈出速度提高。 
2.在HKEY_CURRENT_USER\Control Panel\Deskt-op\WindowsMeterics中新建串值名MinAnimate,值爲1啓動動畫效果開關窗口,值爲0取消動畫效果。 

(三) HKEY_LOCAL_MACHINE 
1.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\explorer\user shell folders 保存個人文件夾、收藏夾的路徑。 

2.HKEY_LOCAL_MACHINE\system\currentControl-Set\control\keyboard Layouts 保存鍵盤使用的語言以及各種中文輸入法。 

3.HKEY_LOCAL_MACHINE\software\microsoft\windows\currentVersion\uninstall 保存已安裝的Windows應用程序卸載信息。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章