✔ 最佳答案
什麼是註冊表
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支援的設備安裝時必須需要驅動,這個驅動是獨立於作業系統的,但是作業系統需要知道從哪找到它們,檔案名、版本號、其他設置和資訊,沒有註冊表對設備的記錄,它們就不能被使用。
註冊表控制用戶模式的例子有:
★控制面板功能;
★桌面外觀和圖標;
★網路參數;
★瀏覽器功能性和特徵。
這些功能中的某些是和用戶無關的,有些是針對用戶的。
如何調用註冊表
在windows的開始/運行功能表中輸入"regedit"你就可以通過註冊表編輯器看到註冊表,註冊表是什麼呢?簡單地說,它是用來對windows作業系統進行配置的一個工具.通過它,可以對作業系統及應用軟體進行優化,可以自己設置windows的使用權限,可以解決硬體及網路設置不當帶來的故障甚至可以改造自己的作業系統。
在windows 3.X時代,主要通過WIN.INI及SYSTEM.INI對windows進行配置,但WIN.INI及SYSTEM.INI文件存在著安全性不高,大小受限制等問題,為瞭解這一問題microsoft公司在WINDOWS98以後的版本中引入了註冊表這一便更好的對windows系統進行配置,這就是為什麼我們要使用註冊表的原因。
註冊表的作用是保存程式所需要的資訊,當程式需要這些資訊時,就從註冊表裏讀出。因此,註冊表最基本的功能就是保存資訊。
當瞭解了註冊表的主要功能--保存資訊後,再來瞭解其保存資訊後,再來瞭解保存資訊所發揮的作用!
1,記錄安裝資訊;
2,設置硬體屬性;
3,定制WINDOWS以及應用軟體.
註冊表邏輯結構中最基本的是主鍵,子鍵,鍵值項以及鍵值。它們是按照分組的方式來管理和組織的。首先是最底根鍵,每個根鍵下有若干個子鍵,每個子鍵下又可以有若干(一個或多個)子鍵,子鍵下可以有一個或多個鍵值項和鍵值。
根鍵:註冊表中最底層的鍵,類似於磁片上的根目錄。
子鍵:子鍵位於根鍵下又可以嵌套其他子鍵中,在註冊表的六大根鍵中,有若干的子鍵,而每個子鍵中又可以嵌套成千上萬的子鍵。
鍵值項與鍵值
鍵值項與鍵值:
在每個根鍵和子鍵下,可以有若干鍵值,這種結構類似於磁片上根目錄和子目錄裏的檔和檔內容.
windows 9x註冊表邏輯結構中包含六個根鍵,每個根鍵包含著分類不同的資訊!在windowsNT/2000/XP中,如果用windows自帶的編輯器打開的時候,只能看到五個,還有一個隱藏的根鍵:HKEY_PERFOR_MANCE_DATA。
*HKEY_CLASS_ROOT
記錄windows作業系統中所有資料檔案的格式和關聯資訊,主要記錄不同檔的檔案名尾碼和與之對應的應用程式其下子鍵可分為兩類:一類是已經註冊的各類檔的副檔名,這類子鍵前面都帶有一個".";另一類是各類檔類型有關資訊。
*HKEY_CURRENT_USER
此根根鍵包含當前登錄用戶的用戶配置檔資訊,這些資訊保證不同的用戶登錄電腦時,使用自己的修改化設置,例如自己定義的牆紙,自己的收件箱,自己的安全訪問許可權。
*HKEY_LOCAL_MACHINE
此根鍵包含了當前電腦的配置靈氣,包括所安裝的硬體以軟體設置。這些資訊是為所有的用戶登錄系統服務的。這是事個註冊表中最龐大也是最重要的根鍵!
*HKEY_USERS
HKEY_USERS根鍵包括默認用戶的資訊(DEFAULT子鍵)和所有以前登陸用戶的資訊。
*HKEY_CURRENT_CONFIG
此根鍵實際上是HKDY_LOCAL_MACHINE/CONFIG/0001分支下的資料完全一樣。
*HKEY_DYN_DATA根鍵
這個鍵保存每次系統啟動時,創建的系統配置和當前性能資訊。這個根鍵只存在於windows 9X中
*HKEY_PERFORMANCE_DATA
在windowsNT/2000/XP註冊表中雖然沒有HKEY_DYN_DAT鍵,但是它卻隱藏了一個名為"HKEY_PERFORMANCE_DATA的鍵。所有系統中的動態資訊都是存放在此子鍵中,系統自帶的註冊表編輯器無法看到些鍵。介可以用專門的程式來查看此鍵,比如使用性能監視器。