什麼是登錄檔?有什麼用?備份登錄檔又是做什麼的?

  • 作者:由 匿名使用者 發表于 動漫
  • 2022-08-31

什麼是登錄檔?有什麼用?備份登錄檔又是做什麼的?lovetdi 2006-03-18

什麼是登錄檔?

登錄檔因為它複雜的結構和沒有任何聯絡的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於登錄檔正確設定的支援資訊,這樣使得登錄檔看上去更不可琢磨。處理和編輯登錄檔如同“黑色藝術”一樣,它在系統中的設定讓使用者感覺象在黑暗中摸索一樣找不到感覺。這樣,因為使用者對這方面的缺乏瞭解使得登錄檔更多的出現故障。

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的路徑和檔名即可。

最開始,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 NT和Windows95中所有32位硬體/驅動和32位應用程式設計的資料檔案。16位驅動在Winnt下無法工作,所以所有裝置都透過登錄檔來控制,一般這些是透過BIOS來控制的。在Win95下,16位驅動會繼續以真實模式方式裝置工作,它們使用system。ini來控制。16位應用程式會工作在NT或者Win95 下,它們的程式仍然會參考win。ini和system。ini檔案獲得資訊和控制。

在沒有登錄檔的情況下,作業系統不會獲得必須的資訊來執行和控制附屬的裝置和應用程式及正確響應使用者的輸入。

在系統中登錄檔是一個記錄32位驅動的設定和位置的資料庫。當作業系統需要存取硬體裝置,它使用驅動程式,甚至裝置是一個BIOS支援的裝置。無BIOS支援裝置安裝時必須需要驅動,這個驅動是獨立於作業系統的,但是作業系統需要知道從哪裡找到它們,檔名、版本號、其他設定和資訊,沒有登錄檔對裝置的記錄,它們就不能被使用。

當一個使用者準備執行一個應用程式,登錄檔提供應用程式資訊給作業系統,這樣應用程式可以被找到,正確資料檔案的位置被規定,其他設定也都可以被使用。

登錄檔儲存關於預設資料和輔助檔案的位置資訊、選單、按鈕條、視窗狀態和其他可選項。它同樣也儲存了安裝資訊(比如說日期),安裝軟體的使用者,軟體版本號和日期,序列號等。根據安裝軟體的不同,它包括的資訊也不同。

然而,一般來說,登錄檔控制所有32位應用程式和驅動,控制的方法是基於使用者和計算機的,而不依賴於應用程式或驅動,每個登錄檔的引數項控制了一個使用者的功能或者計算機功能。使用者功能可能包括了桌面外觀和使用者目錄。所以,計算機功能和安裝的硬體和軟體有關,對所以使用者來說項都是公用的。

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

登錄檔控制使用者模式的例子有:

控制面板功能;

桌面外觀和圖示;

網路引數;

瀏覽器功能性和特徵;

那些功能中的某些是和使用者無關的,有些是針對使用者的。

計算機相關控制項基於計算機名,和登陸使用者無關。控制型別的例子是安裝一個應用程式,不管是哪個使用者,程式的可用性和存取是不變的,然而,執行程式圖示依賴於網路上登陸的使用者。網路協議可用性和優先權基於計算機,但是當前連線和使用者資訊相關。

這裡是在登錄檔中基與計算機控制條目的一些例子:

存取控制;

登陸確認;

檔案和印表機共享;

網絡卡設定和協議;

系統性能和虛擬記憶體設定;

沒有了登錄檔,Win95和Winnt 就不太可能存在。它們實在太複雜了,以致於用過去的。ini檔案無法控制,它們的擴充套件能力需要幾乎無限制的安裝和使用應用程式,登錄檔實現了它。然而,登錄檔比。ini檔案更復雜,理解它如何工作,它做什麼和如何用它來做是有效管理系統的關鍵。

在系統中登錄檔控制所有32位應用程式和它們的功能及多個應用程式的互動,比如複製和貼上,它也控制所有的硬體和驅動程式。雖然多數可以透過控制面板來安裝和設定,理解登錄檔仍是做Winnt和Win95系統管理基本常識。

二、登錄檔的結構

登錄檔的結構

登錄檔是Windows程式設計師建造的一個複雜的資訊資料庫,它是多層次式的。在不同系統上登錄檔的基本結構相同。其中的複雜資料會在不同方式上結合,從而產生出一個絕對唯一的登錄檔。

計算機配置和預設使用者設定的登錄檔資料在Winnt中被儲存在下面這五個檔案中:

DEFAULT,SAM,SECURITY,SOFTWARE,SYSTEM,NTUSER。DAT。

Win95中所有系統註冊資訊儲存在windows目錄下的SYSTEM。DAT檔案裡。所有硬體設定和軟體資訊也儲存在這個檔案。它要比NT登錄檔檔案簡單的多,因為這裡並不需要更多的控制。Win95被設計為一個網路的客戶或者單獨工作的系統,所以使用者控制或者安全級別和NT不一樣。這使得Win95登錄檔工作比NT更容易,所以這個檔案也比較小。

Win95使用者的註冊資料一般被儲存在windows目錄下的user。dat裡。如果你在控制面板|密碼|使用者配置檔案中建立並使用多於一個使用者的配置檔案,每個使用者就會有在\WINDOWS\Profiles\username\USER。DAT下它自己的user。dat檔案。在啟動時,系統將記錄你的登陸,從你目錄中的配置檔案(USER。DAT資訊)將被裝入,以用來保持你自己的桌面和圖示。

控制鍵

在登錄檔編輯器中登錄檔項是用控制鍵來顯示或者編輯的。控制鍵使得找到和編輯資訊項組更容易。因此,登錄檔使用這些條目。下面是六個控制鍵

HKEY_LOCAL_MACHINE

HKEY_CLASSES_ROOT

HKEY_CURRENT_CONFIG

HKEY_DYN_DATA

HKEY_USERS

HKEY_CURRENT_USER

Winnt和Win95的登錄檔並不相容。從Win95向Winnt升級需要你重新安裝32位應用程式,重新在桌面上建立圖示,並重新建立使用者環境。

透過控制鍵可以比較容易編輯登錄檔。雖然它們顯示和編輯好象獨立的鍵,其實HKEY_CLASSES_ROOT 和HKEY_CURRENT_CONFIG是 HKEY_LOCAL_MACHINE的一部分。HKEY_CURRENT_USER是HKEY_USERS的一部分。

HKEY_LOCAL_MACHINE包含了HKEY_CLASSES_ROOT和HKEY_CURRENT_CONFIG的所有內容。每次計算機啟動時,HKEY_CURRENT_CONFIG和HKEY_CLASSES_ROOT的資訊被對映用以檢視和編輯。

HKEY_CLASSES_ROOT其實就是HKEY_LOCAL_MACHINE\SOFTWARE\Classes,但是在HKEY_CLASSES_ROOT窗編輯相對來說顯得更容易和有條理。

HKEY_USERS儲存著預設使用者資訊和當前登陸使用者資訊。當一個域成員計算機啟動並且一個使用者登陸,域控制器自動將資訊傳送到HKEY_CURRENT_USER裡,而且HKEY_CURRENT_USER資訊被對映到系統記憶體中。其他使用者的資訊並不傳送到系統,而是記錄在域控制器裡。

鍵和子鍵

資料被分割成多層次的鍵和子鍵,建立分層次(就象Exploer一樣)結構更易於編輯。每個鍵有成組的資訊而且根據在其中的資料型別被命名。每個鍵在它的資料夾圖示上都有一個加號(+)標誌子鍵說明在它下面還有更多內容的東西。當點開它的時候,資料夾的加號標誌被替換成一個減號(-)標誌,然後顯示出下一級的子鍵。

所有軟體,硬體,windows工作的設定都存放在HKEY_LOCAL_MACHINE。所有安全策略,使用者許可權和共享資訊也包括在這個鍵中。使用者許可權,安全策略,共享資訊可以透過Windows NT域使用者管理器,Explorer和Win95中控制面板來設定。

HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT包含了所有應用程式執行時必需的資訊:

在檔案和應用程式之間所有的副檔名和關聯;

所有的驅動程式名稱;

類的ID數字(所要存取項的名字用數字來代替);

DDE和OLE的資訊;

用於應用程式和檔案的圖示;

HKEY_CURRENT_CONFIG。

HKEY_CURRENT_CONFIG是在HKEY_LOCAL_MACHINE中當前硬體配置資訊的對映。如果系統只有一個配置檔案,也就是原始配置,資料將一直在同樣的地方。在控制面板|系統|硬體配置檔案|建立一個額外的配置使額外配置資訊放入HKEY_LOCAL_MACHINE。當Win95中存在多個配置檔案時,當每次計算機啟動時將給出一個提示讓你選擇一個配置檔案。在Winnt中,在啟動時你可以按空格鍵來選擇上次正常啟動時硬體配置檔案。根據硬體配置檔案選擇的不同,特定的資訊被對映到HKEY_CURRENT_CONFIG。

HKEY_DYN_DATA

HKEY_DYN_DATA和其他的登錄檔控制鍵不同,因為實際上它並不被寫入硬碟驅動器中。Win95的一個優點是,在系統啟動時HKEY_DYN_DATA這個控制鍵儲存收集到的即插即用資訊並配置它們。它儲存在記憶體中,Win95用它來控制硬體。因為是在記憶體中,所以它不從硬碟中讀取,每次當你啟動計算機時,配置都有可能會不一樣。在啟動時Win95必須計算超過1600種可能的配置。所以,如果系統改變既定的設定而沒有報告給Win95那麼潛在的問題就可能發生。系統大多數時間工作良好,但是並非一直如此。

HKEY_USERS

HKEY_USERS僅包含了預設使用者設定和登陸使用者的資訊。雖然它包含了所有獨立使用者的設定,但在使用者未登陸網路時使用者的設定是不可用的。這些設定告訴系統哪些圖示會被使用,什麼組可用,哪個開始選單可用,哪些顏色和字型可用,和控制面板上什麼選項和設定可用。

HKEY_CURRENT_USER

用來儲存當前使用者和預設使用者的資訊,HKEY_CURRENT_USER僅對映當前登陸使用者的資訊。

各主鍵的簡單介紹

HKEY_LOCAL_MACHINE

HKEY_LOCAL_MACHINE是一個顯示控制系統和軟體的處理鍵。HKLM鍵儲存著計算機的系統資訊。它包括網路和硬體上所有的軟體設定。(比如檔案的位置,註冊和未註冊的狀態,版本號等等)這些設定和使用者無關,因為這些設定是針對使用這個系統的所有使用者的。

HKEY_LOCAL_MACHINE\AppEvents

為了以後在瘦客戶機上執行客戶機/伺服器這樣的應用程式,在Win95/98中AppEvents鍵是空的。應用程式實際上都駐留網路伺服器上,這些鍵會儲存部分指標。

HKEY_LOCAL_MACHINE\Config

這個鍵儲存著你計算機上所有不同的硬體設定(這些從控制面板的系統屬性中硬體配置檔案中可以建立)。這些配置在啟動時通常被複制到HKCC。每個配置會被用一個鍵(比如0001或者0002等等)來儲存,每個都是一個獨立的配置。如果你只有一個單一的配置,那就只會有0001這個鍵

HKEY_LOCAL_MACHINE\Config\0001\Display

這個鍵表示顯示的設定,如熒屏字型,窗體大小,窗體位置和解析度等

一個小技巧:當設定了計算機不支援的大解析度導致Windows不能啟動時(黑屏),可以修改解析度來解決。進入安全模式,執行regedit。exe,在這個鍵的Resolution鍵值中把資料值修改為640,480或者800,600這樣的低解析度,然後重新啟動計算機即可。

HKEY_LOCAL_MACHINE\Config\0001\System

這個鍵儲存著系統裡印表機的資訊

HKEY_LOCAL_MACHINE\Config\0001\System\CurrentControlSet\Control\Print\Printers

在這個鍵下面,有一個鍵是為系統上每一個印表機設定的,透過控制面板新增和刪除印表機會調整這個列表

HKEY_LOCAL_MACHINE\Enum

Enum鍵包含啟動時發現的硬體裝置和那些既插即用卡的資訊。Win95使用匯流排列舉在啟動時透過不同的。ini檔案來檢測硬體資訊。那些在啟動時被安裝的和被檢測到的硬體會顯示在這裡。子鍵包括BIOS, ESDI, FLOP, HTREE, ISAPNP, Monitor, Network, Root, SCSI, 和 VIRTUAL。子鍵名錶示它們各自的硬體裝置資訊。

HKEY_LOCAL_MACHINE\Enum\BIOS

BIOS鍵儲存著系統中所有即插即用裝置的資訊。它們用一套程式碼數列出,包括每一個鍵的詳細說明,舉例,*pnp0400是並行口LPT1的鍵。如果LPT1並不具備即插即用功能,它就會別列入到Enum下的Root鍵中

HKEY_LOCAL_MACHINE\Enum\Root

Root鍵包括所有非即插即用裝置的資訊。在這裡,我們可以迅速斷定哪些裝置是即插即用,那些不是。比如SCSI介面卡,這個裝置必須符合Win95中一個鍵名為ForcedConfig的硬體設定,這個不會改變。

HKEY_LOCAL_MACHINE\Enum\Network

win95的網路功能在這個鍵有詳細說明,子鍵包括了每個已經安裝的主要的服務和協議。

HKEY_LOCAL_MACHINE\HARDWARE

hardware子鍵包括了兩個多層的子鍵:DESCRIPTION鍵,它包含了中央處理器和一個浮點處理器的資訊。還有一個裝置對映鍵,它下面的序列鍵列出你所有的com埠。這個hardware鍵僅儲存超級終端程式的資訊,及數學處理器和序列口。

HKEY_LOCAL_MACHINE\Network

這個鍵僅儲存網路登陸資訊。所有網路服務細節都儲存在HKEY_LOCAL_MACHINE\Enum\Network這個鍵中。這個鍵有一個子鍵,logon,包括了lmlogon(本地機器登陸?0=false 1=true)的值,logonvalidated(必須登陸驗證),策略處理,主登陸方式(Windows登陸 ,微軟網路客戶方式等),使用者名稱和使用者配置。

HKEY_LOCAL_MACHINE\SECURITY

security 有兩個子鍵,第一個是存取(它最終致使一個遠端鍵列出網路安全資源,存取許可權等)和提供(包括列出網路地址和地址伺服器),這個鍵被保留用在以後使用高階安全功能和NT相容性上

HKEY_LOCAL_MACHINE\SOFTWARE

這個鍵列出了所有已安裝的32位軟體和程式的。ini檔案。它包括了變化,依靠軟體安裝。那些程式的控制功能在這裡的子鍵中列出。多數子鍵簡單的列出了安裝軟體的版本號。

我們在\Microsoft\Windows\Current Version下發現了一些有意思的設定,它有如下子鍵:

1。App paths: 你曾經安裝過的所有32位軟體的位置。

2。Applets, Compression, Controls Folder : 包括下控制面板象顯示屬性那樣屬性條的附件。

3。Detect, explorer :很多有意思的子鍵如Namespace keys of Desktop和My Computer——它們指出了回收站和撥號網路的CLSID行——和提示子鍵可以讓你建立自己的提示。

4。Extensions : 一個擴充套件聯絡的列表,當前相關聯的副檔名和位元定的執行檔案更適合的目標型別。

5。Fonts, fontsize, FS Templates :系統屬性條中所選擇檔案系統模板, 伺服器,桌面計算機或者膝上型電腦資訊。

6。MS-DOS Emulation :包括一個應用程式相容子鍵 為大量過時的程式二進位制鍵所設。

7。MS-DOS Options :在dos模式下的設定,如himem。sys,cd-roms等。

8。Network :網路驅動的配置。

9。Nls, Policies :系統管理員認為你不應該去做的事。

10。ProfileList :所有可以登陸你計算機的使用者名稱列表。

11。在Windows啟動時執行的程式的神秘之處是它們並不在開始選單的啟動資料夾中。它們在HKEY_LOCAL_MACHINE\Microsoft\Windows\CurrentVersion\下的子鍵中被執行。

Run : 程式在啟動時執行

RunOnce : windows初始化時程式在啟動時只執行一次,這個經常用在當安裝軟體之後需要重新啟動系統的時候,所以這個鍵一般都是空的。

RunServices : 它就象Run一樣,但是包含了“服務”,它不象一般的程式它們是比較重要的或者是“系統”程式。但是它們不是VXDs,就象McAfee或者RegServ工作一樣。

RunServicesOnce : 它只執行一次,但是是“系統自身”的安裝(大量的windows安裝引數:通常鍵值包括了系統目錄位置,和win95更新,可選項安裝元件,和windows啟動目錄的子鍵。

注意:在很多駭客木馬軟體中,常常在這裡新增鍵值(一般是在Run中),這樣使得木馬軟體可以隨著windows啟動而啟動並且很隱秘。在這裡可以檢視不正常的啟動項和去掉無用的執行程式(比如我就很不喜歡超級解霸的自動伺服器,在這裡可以去掉它)。

12。SharedDLLs:共享DLL的列表,每一個都給出了在一個不可知系統的一個數字等級。

13。Shell Extensions:列出了“被認可的”OLE註冊條,和相應的CLSID連線。

14。ShellScrap :這個包含了一個PriorityCacheformats的子鍵,它包括了一個空的有限值,它更象過去SmartDrive命令列引數的派生。

15。Time Zones : 主鍵值是你現在的時區;子鍵定義了所以可能的時區。

16。Uninstall:這個儲存了程式在新增/刪除程式對話方塊的顯示;子鍵包含了指向反安裝程式的路徑。和安裝嚮導相似……。)winlogon(包含了合法登陸佈告的文字句)

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet

這個子鍵包括裝置驅動和其他服務的描述和控制。不同於windows nt,win95只包括限制驅動的控制設定資訊。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control

這個子鍵包括了win95控制面板中的資訊。不要編輯這些資訊,因為一些小程式的改變在很多地方,一個丟失的項會使這個系統變的不穩定

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services

這個鍵包括了所有win95的標準服務。所有被新增的服務和裝置,每個標準的服務鍵包括了它的設定和辨認設定。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Arbitrators

atbitrators鍵包括了當兩個裝置共同佔用同樣的設定需要解決的資訊。四個子鍵包括了記憶體地址,衝突,DMA,I/O埠衝突和IRQ衝突。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Class

class鍵包括了所有win95支援的裝置classes控制,這些和你在新增新硬體出現的硬體組很類似,還包括了這些裝置如何安裝的資訊。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\inetaccs

這個鍵包括了關於這個系統變化的ie附件的可用性,它僅在你安裝過ie2。0或者更高版本才出現。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSNP32

msnp32描述了客戶機如何在microsoft網路中實現功能,它包括了認證過程和認證者的資訊。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NWNP32

nenp32鍵描述了windows客戶如何在netware網路中工作功能,它包括了關於認證過程和證明者的資訊。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess

在這個鍵裡包括需要遠端工作在win95系統上的資訊,有認證引數,主機資訊,和為了建立一個撥號連線工作的協議資訊。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SNMP

這個鍵包括了所以snmp(簡單網路管理協議)的引數。它包括了允許的管理,配置陷阱,和有效的團體。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\VxD

vxd鍵包括了win95中所有32位虛擬裝置驅動資訊,win95自動管理它們,所以不必要用登錄檔編輯器編輯它們,所以的靜態vxds用子鍵列出。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebPost

webpost鍵包括了所有裝載的internet郵局的設定,如果你連線一個isp,並且它列出載這裡,你應該給自己選則一個伺服器。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Winsock

這個鍵列出了當連線到internet上winnsock檔案的資訊,如果列出了不正確的檔案,你將不會連線上internet。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WinTrust

wintrust功能是檢查從Internet上下載來的檔案是否有病毒,它可以確保你得到乾淨安全的檔案。

HKEY_CLASSES_ROOT

在登錄檔中HKEY_CLASSES_ROOT是系統中控制所有資料檔案的項。這個在Win95和Winnt中是相通的。HKEY_CLASSES_ROOT控制鍵包括了所有檔案擴充套件和所有和執行檔案相關的檔案。它同樣也決定了當一個檔案被雙擊時起反應的相關應用程式。

HKEY_CLASSES_ROOT被用作程式設計師在安裝軟體時方便的傳送資訊,在Win95和Winnt中,HKEY_CLASSES_ROOT和HKEY_LOCAL_MACHINE\Software\Classes是相同的。程式設計師在執行他們的啟動程式時不需要擔憂實際的位置,相反的,他們只需要在HKEY_CLASSES_ROOT中加入資料就可以了。

在Windows使用者圖形介面下,每件事——每個檔案,每個目錄,每個小程式,每個連線,每個驅動——-都被看做一個物件;每個物件都有確定的屬性和它聯絡。HKCR包含著物件型別和它們屬性的列表。HKCR主要的功能被設定為:

一個物件型別和一個副檔名關聯

一個物件型別和一種圖示關聯

一個物件型別和一個命令列動作的關聯

定義物件型別相關選單選項和定義每一個物件型別屬性選項

在Win95中,相關選單就是當你滑鼠右擊一個物件時所彈出的選單;屬性就是當你選擇屬性項後一個展開的對話方塊。用簡單術語來說就是在改變HKCR中的設定可以改變一個給定副檔名預設的關聯。改變一個檔案型別的預設圖示,和新增或者刪除給定物件型別的彈出選單內容(或者所有的物件型別)

HKCR包括了三種基本型別的子鍵

\??? 或者副檔名子鍵

副檔名子鍵在彈出選單上連線副檔名到物件型別和相關操作,屬性項,和相關操作。

\object 型別子鍵

物件型別子鍵定義了一個物件型別在它預設圖示的項,它的彈出選單和屬性項,它的相關操作和它的CLSID連線。

\CLSID 子鍵

在Windows下每件事都被用一個數字取代它的名字來對待。就象人往往是用名字來處理事情一樣。CLSID是標識所有列出的圖示,應用程式,目錄,檔案型別等等物件的數字。是微軟為製造商分配的,每一個都必須是唯一的。製造商將CLSID放入安裝程式檔案這樣就可以在安裝時更新登錄檔。

登錄檔是應用程式進行時它們需要關於做什麼的指示的資料庫。比如說,假定你有一個微軟Excel 7電子資料表的Word 7文件,當你在Word中雙擊這個電子資料表,應用程式選單就會變成Excel的選單而且電子資料表進入編輯狀態,就好象你在Excel中一樣。它是如何知道該做什麼呢?每個Excel 7建立的檔案都有Excel的CLSID連線。Word讀這個CLSID後,到登錄檔中尋找指示,依賴CLSID下的資料執行。DLL檔案或者應用程式。

CLSID子鍵為物件型別提供了OLE和DDE資訊和圖示。相關選單,或者包含在它子鍵中的屬性項資訊。這個可能是多數讓人看到後覺得“恐怖”的鍵。每個CLSID數必須是唯一的,實際上,為了這個目的微軟已經出產了CLSID-產生程式——這個結果導致你往往得到32位16進位制的數字串,除非你是程式設計師,否則多數部分鍵看起來是很枯燥的。它們包括記憶體管理模式,客戶機/伺服器配置,和OLE處理的。dll連線。

關於子鍵的一點註解

1)shell:Shell鍵有個一”action“子鍵,如同”open“一樣,這裡有一個command子鍵;command子鍵有一個預設句值,它包含了執行程式的命令列。將一個”open“子鍵放在一個物件型別的shell子鍵中會在這個物件型別的彈出選單上多出一個”open“選項,給這個open子鍵一個command(預設命令列“C:\Windows \Notepad。exe %1”)子鍵會使得開啟這個物件型別時使用筆記本做為預設應用程式。其他操作選項包括View,Print,Copy,Virus,Scan等等。

2)shellex:Shellex鍵有一個子鍵。它們包含的每一個子鍵指向一個為物件型別執行OLE和DDE功能的CLSID項(比如說快速檢視,一個選單處理子鍵下指向一個有句值的CLSID鍵列出了包含了檔案瀏覽功能的。dll檔案)

3)shellnew:ShellNew包含了一個“command”句,它包含了一個開啟物件型別“新”檔案的命令列。

什麼是登錄檔?有什麼用?備份登錄檔又是做什麼的?zc197 2006-03-18

這是寫給電腦初學者的文章,目的是讓大家對登錄檔有所瞭解,如果你是高手可以跳過:)。登錄檔是windows的命根,裡面儲存著大量的系統資訊,說白了就是一個龐大的資料庫。如果你不懂什麼是資料庫,那沒關係,不影響你瞭解登錄檔,不過最好對資料庫有所瞭解。登錄檔裡面所有的資訊平時都是由windows作業系統自主管理的,也可以透過軟體或手工修改。登錄檔裡面有很多系統的重要資訊,包括外設,驅動程式,軟體,使用者記錄等等,登錄檔在很大程度上“指揮”電腦怎樣工作。

登錄檔有很大的用處,功能非常強大,是windows的核心。透過修改登錄檔,我們可以對系統進行限制、最佳化等等。比如我們不想讓別人用“開始”選單,我們可以修改登錄檔來達到目的。除此之外,還有很多了,你可以參考本手冊進行修改,裡面的內容很詳盡,並隨時間而充實。登錄檔修改主要是多練習,細心觀察,認真思考,就會慢慢掌握的。

根據本人經驗,修改登錄檔有三種方法,歸納如下:

在這裡提醒大家一句,如果你沒有把握,切記在修改之前,一定要備份登錄檔。

一。用windows的登錄檔修改器——regedit。exe

方法是在windows的左下角開始選單裡,點選執行,然後鍵入regedit,回車即可。你可以在開啟的修改器裡查詢所需要修改的登錄檔修改項。比如要禁止“開始”選單裡的查詢功能,我們知道修改的內容為:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer,在右邊的視窗中新建一個DWORD值“NoFind”,並設值為1。(查閱本手冊即可找到)。那麼我們開啟登錄檔修改器,可以看到有HKEY_CURRENT_USER這個根鍵,左邊還有一個“+”號,點選“+”號展開下面的目錄樹,找到Software,再展開找Microsoft,這樣一層一層地展開,直到找到Explorer項,看右邊的視窗,你會發現有不少的鍵值,恭喜你,你快成功了。然後在右邊的視窗中單擊滑鼠右鍵,選擇新建DWORD值,輸入NoFind,注意大小寫,你會發現右邊視窗中多了一個名為NoFind的鍵名,OK,我們給它賦值,在NoFind上雙擊,然後在彈出的視窗中將原來預設的0改成1,最後,重新啟動計算機後,你會發現開始選單裡的“查詢”消失了,如果你想把它改回來,那麼按上面的方法,把1改成0,然後重新啟動就可以了。是不是很簡單?其他的修改也差不多了,關鍵是要找到修改的內容,這就是本手冊所提供的強大功能了。呵呵,相信能給你帶來很大的幫助。

二。用專門的修改軟體

如果你很懶,不想知道究竟要修改什麼內容。那麼就用專門的登錄檔修改軟體了,比較有名氣的是“超級兔子魔法”,還有“windows最佳化大師”,在這裡評價一下,windows最佳化大師名字響,可是不好用。我本人比較喜歡的是另外一個叫“註冊終結者”的修改器,主要是介面友好,功能多而不容易出錯。現在隨著winXP的推出,各種修改器也隨之更新,可是功能還有待改進。現在新出的“神奇登錄檔”修改器,可以修改winXP等,大家可以試試看。這些修改器都很容易上手,修改起來很方便。不過你如果想深入學習登錄檔,最好還是手動修改了,不然你學不到多少東西的了。

三。手工寫。reg登錄檔檔案

這是修改登錄檔的高階技巧了。有沒有試過自己寫登錄檔檔案?不用任何修改器?直接把寫好的登錄檔檔案——。reg倒入登錄檔?呵呵,這項技巧並不需要每個人都知道了,你只要知道上面的兩個就可以了。當然,如果你是電腦迷,我們贊成深入學習。

現在我們來看看。reg檔案的結構如何。

。reg檔案的標準格式如下:

REGEDIT4

[路徑] (注意用大小寫)

“鍵名”=“鍵值” (針對字串型鍵值)

“鍵名”=hex:鍵值 (針對二進位制型鍵值)

“鍵名”=dword:鍵值 (針對DWORD鍵值)

括號裡面的內容為本人的註釋,寫檔案的時候就不需要那些小括號了,其他上面所列的都必須包括。注意引號輸入時不能用中文輸入的引號,必須用英文的引號,否則會出錯。

那麼,怎麼寫。reg檔案呢?我們需要一個文字編輯器,用windows的記事本就可以了。單擊滑鼠右鍵,選擇新建文字文件,然後在生成的文字檔案裡輸入上面規格的內容就可以了,最後,選擇另存為,輸入你想要的檔名+。reg儲存即可。比如你要生成test。reg,輸入test。reg儲存即可,你可以看到生成了一個帶圖示的test。reg。雙擊執行這個test。reg檔案就能相應的修改登錄檔了,系統會提示“是否匯入登錄檔”之類的資訊,確定就可以了。OK,我們可以手動寫登錄檔了,是不是感覺很酷?

先別急,我們來看看一個標準範例,這是從登錄檔裡面匯出來的,大家慢慢學習,跟著模仿一下就能寫出自己的。reg檔案了。

REGEDIT4

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer]

“NoRun”=dword:00000000

“NoRecentDocsMenu”=hex:01,00,00,00

“NoFavoritesMenu”=dword:00000000

“user”=“sundrink”

大家可以看到,dword是16進位制,hex是二進位制,字串則可以直接賦值。只要將上面的內容複製儲存到文字文件裡,然後另存為你想要的。reg檔案執行就可以了。呵呵,原來也不是很難嘛,耐心一點就可以了。當然,你要模仿,要自己動手寫。reg檔案,用記事本就可以了。

說多兩句,為什麼要手寫登錄檔?因為有時候我們會碰到一臺鎖定regedit的機子,有什麼辦法解開呢?呵呵,如果你會手寫登錄檔檔案的話,那很簡單了……大家發揮想象吧!用不了很長時間的。

最後提醒大家,登錄檔修改可不是鬧著玩的,其中有些鍵值是不能隨便改的,因為如果你沒有備份,而又不知道怎麼改回來的話,那就麻煩了,我也幫不了你。所以奉勸各位在修改登錄檔之前一定要記得備份,切記!

什麼是登錄檔?有什麼用?備份登錄檔又是做什麼的?三叉貓 2006-03-18

什麼是登錄檔?

登錄檔因為它複雜的結構和沒有任何聯絡的CLSID鍵使得它可能看上去很神秘。不幸的是,微軟並沒有完全公開講述關於登錄檔正確設定的支援資訊,這樣使得登錄檔看上去更不可琢磨。處理和編輯登錄檔如同“黑色藝術”一樣,它在系統中的設定讓使用者感覺象在黑暗中摸索一樣找不到感覺。這樣,因為使用者對這方面的缺乏瞭解使得登錄檔更多的出現故障。

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的路徑和檔名即可。

最開始,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。

用兔子、最佳化大師等工具可以備份登錄檔

Top