什麼是登錄檔?win95為什麼會引入這一特殊資料記錄方式?登錄檔和ini檔案相比,到底有何不同?我們該如何有針對性地對其進行修改?帶著這些問題,我們約請何宗琦副教授寫下了該文。
什麼是登錄檔?
pc機及其作業系統的乙個特點就是允許使用者按照自己的要求對計算機系統的硬體和軟體進行靈活配置。在windows3.x中,對軟硬體工作環境靈活配置的特點主要表現在採用了字尾為「ini」的檔案來登入硬體和軟體的各種初始化資訊,以便系統建立符合要求的工作環境。因為每乙個裝置或者應用程式都可以建立自己的ini檔案,所以造成ini檔案眾多,為ini檔案的管理增加了難度。特別是由於這些配置檔案的儲存都採用局域化方式,因此要在網路上實現遠端訪問幾乎是不可能的。
為了克服上述問題,就必須建立乙個統一管理各種資訊資源的機構來集中儲存各種配置資訊,按照這一原則,在win95中採用了登錄檔方式。所謂登錄檔實際上是乙個龐大的資料庫,其中容納了應用程式和計算機系統的全部配置資訊、win95系統和應用程式的初始化資訊、應用程式和文件檔案的關聯關係、硬體裝置的說明、狀態和屬性以及各種狀態資訊和資料。
system.dat是用來儲存微機的系統資訊,如安裝的硬體和裝置驅動程式的有關資訊等。這個檔案,必須放在win95子目錄下。
user.dat是用來儲存每個使用者特有的資訊,如桌面設定、牆紙或視窗的顏色設定等。這個檔案可以放在win95子目錄下,也可以放在網路磁碟上。
system.dat的自備份檔案為system.da0,user.dat的自備份檔案為user.da0。
登錄檔編輯器則用來對登錄檔進行各種編輯工作。
登錄檔和ini檔案有何不同?
為了保持系統的向下相容性,win95中保留了.ini檔案。在形式上,登錄檔與ini檔案有兩個顯著的特點:
1.登錄檔採用的是二進位制形式登入資料,ini檔案採用的則是簡單的文字形式登入資料;
2.登錄檔支援子關鍵字,各級子關鍵字都有自己的「鍵值」,ini檔案中則支援節以及節中的引數。
在功能上,登錄檔與.ini檔案相比,主要有以下三個特點:
1.登錄檔允許對硬體、某些作業系統引數、應用程式和裝置驅動程式進行跟蹤配置,這使得某些配置的改變可以在不重新啟動系統的情況下立即生效。
2.登錄檔中登入的硬體部分資料可以用來支援win95的即插即用特性。當win95檢測到機器上的各種裝置時,就把有關資料儲存到登錄檔中。通常是在安裝時進行這種檢測的,但win95啟動或原有配置改變時,也要進行檢測。如安裝乙個新的硬體時,win95將檢查登錄檔,以便確定哪些資源已被占用,這樣就可以避免新裝置與原有裝置之間的資源衝突。
3.通過登錄檔,管理人員和使用者可以在網路上檢查系統的配置和設定,使得遠端管理得以實現。
預定義關鍵字
登錄檔採用「關鍵字」及其「鍵值」來描述登入項及其資料。所有的關鍵字都是以「hkey」作為字首開頭。實際上,關鍵字是乙個控制代碼。這種約定使得應用程式開發人員可以在使用登錄檔api時把它用於程式之中。為此,win95提供了若干api函式,以便在開發win95應用程式時新增、修改、查詢和刪除登錄檔的登入項。關鍵字可以分為兩類:一類是由系統定義的,通常稱為「預定義關鍵字」;另一類是由應用程式定義的,安裝的應用軟體不同,其登入項也就不同。
開啟登錄檔編輯器(regedit.exe),就可以看到關鍵字。
下面我們對上圖中系統預定義的六個主關鍵字進行總的介紹。
hkey_classes_root
該主關鍵字包含了有關的ole資訊,以便在系統工作過程中實現對各種檔案和文件資訊的訪問。具體的內容有已經註冊的副檔名、檔案型別、檔案圖示等。
hkey_users
pc使用者都可以在這裡設定自己的關鍵字和子關鍵字。根據當前登入的使用者不同,這個關鍵字又可以指向不同的分支部分。這個分支部分將對映到hkey_current_user關鍵字中。使用者根據個人愛好設定的諸如桌面、背景、開始選單程式項、應用程式快捷鍵、顯示字型、螢幕節電設定等資訊均可以在這個關鍵字中找到。本關鍵字中的大部分設定都可以通過控制面板來修改。如果使用者登入到系統中的資訊,沒有預定義的登入項,則採用本關鍵字下面的「default」子關鍵字(如圖2) 。
hkey_current_user
hkey_current_user是乙個指向hkey_users結構中某個分支的指標,它包含當前使用者的登入資訊。實際上它就是hkey_users\default下面的一部分內容,如果在hkey_users\default下面沒有使用者登入的其它內容,那麼這兩個主關鍵字包含的內容是完全相同的。
hkey_local_machine
該關鍵字包含了本地計算機(相對網路環境而言)的硬體和軟體的全部資訊。當系統的配置和設定發生變化時,本關鍵字下面的登入項也將隨之改變。
hkey_current_config
這個關鍵字實際上也是指向hkey_local _machine\config結構中的某個分支的指標。hkey_current_config下面的子關鍵字及內容與hkey_local _machine\config\0001分支下面的子關鍵字及內容是完全相同的。本關鍵字包含的主要內容是計算機的當前配置情況,如顯示器、印表機等可選外部裝置及其設定資訊等,而且這個配置資訊均將根據當前連線的網路型別、硬體配置以及應用軟體的安裝不同而有所變化。
hkey_dyn_data
顧名思義,本關鍵字包含了系統執行中的動態資料-即已發生的事件的有關資訊。因此這個關鍵字的內容不僅包含系統硬體的當前狀態,也包含了那些需要更新和檢索的資料。這些資料都是動態變化的,它們總是最新的資訊。win95每次啟動時都將重新建立這個關鍵字。為了提高工作速度,hkey_dyn_data實際上是存放在記憶體(ram)中的,因此如果發生了對於登錄檔內容的修改,則不必立即寫入磁碟。這對於提高系統的速度是十分必要的(未完待續)。
windows登錄檔 登錄檔的認識
登錄檔的特點 1.登錄檔允許對硬體 系統引數 應用程式和裝置驅動程式進行跟蹤配置,這使得修改某些設定後不用重新啟動成為可能。2.登錄檔中登入的硬體部分資料可以支援高版本的即插即用特性。當windows檢測到機器上的新裝置時,就把有關資料儲存到登錄檔中,另外,還可以避免新裝置與原有裝置之間的資源衝突。...
初步認識登錄檔(待續)
以下是我認為常用的登錄檔中的設定 hkey current user software microsoft windows currentversion interner settings zones 3 2.禁止顯示ie的位址列 適用於window98 nt me 2000 xp hkey cla...
Win32登錄檔列舉
最近有點忙,因為設計了很久的專案終於開紿寫 了。但堅持寫博是我的習慣,於是這會兒吃了晚飯的休息時間記錄了一點登錄檔api 操作的東西。下面這段 主要是用來列舉windows mobile下的plug in,然後可以設定所有的plug in的enabled鍵值。但windows mobile 的plu...