阿春变异实录7:註冊表詳解

来源:百度文库 编辑:九乡新闻网 时间:2024/07/07 10:06:51

  Windows的註冊表(Registry)實質上是一個龐大的數據庫,它存儲這下面這些內容:
  軟、硬件的有關配置和狀態信息,應用程序和資源管理器外殼的初始條件、首選項和卸載數據;
  計算機的整個系統的設置和各種許可,文件擴展名與應用程序的關聯, 硬件的描述、狀態和屬性;
  計算機性能紀錄和底層的系統狀態信息,以及各類其他數據。
註冊表的結構
  在Windows中,註冊表由兩個文件組成:System.dat和User.dat,保存在windows所在的文件夾中。它們是由二進制數據組成。System.dat包含系統硬件和軟件的設置,User.dat保存著與用戶有關的信息,例如資源管理器的設置,顏色方案以及網絡口令等等。
  Windows為我們提供了一個註冊表編輯器(Regedit.exe)的工具(圖1),它可以用來查看和維護註冊表。

 由圖1我們可以看到,註冊表編輯器與資源管理器的界面相似。左邊窗格中,由"我的電腦"開始,以下是六個分支,每個分之名都以HKEY開頭,稱為主鍵(KEY),展開後可以看到主鍵還包含次級主鍵(SubKEY)。當單擊某一主鍵或次主鍵時,右邊窗格中顯示的是所選主鍵內包含的一個或多個鍵值(Value)。鍵值由鍵值名稱(Value Name)和數據(Value Data)組成。主鍵中可以包含多級的次級主鍵,註冊表中的信息就是按照多級的層次結構組織的。每個分支中保存計算機軟件或應建設之中某一方面的信息與數據。
  註冊表中格分支的功能如下:
HKEY-CLASSES-ROOT  文件擴展名與應用的關聯及OLE信息
HKEY-CURRENT-USER  當前登錄用戶控制面板選項和桌面等的設置,以及映射的網絡驅動器
HKEY-LOCAL-MACHINE 計算機硬件與應用程序信息
HKEY-USERS      所有登錄用戶的信息
HKEY-CURRENT-CONFIG 計算機硬件配置信息
HKEY-DYN-DATA    即插即用和系統性能的動態信息
註冊表中的鍵值項數據
  註冊表通過鍵和子鍵來管理各種信息。但是註冊表中的所有信息都是以各種形式的鍵值項數據保存的。在註冊表編輯器右窗格中顯示的都是鍵值項數據。這些鍵值項數據可以分為三種類型:
  1.字符串值
  在註冊表中,字符串值一般用來表示文件的描述和硬件的標識。通常由字母和數字組成,也可以是漢字,最大長度不能超過255個字符。在本站中以"a"="***"表示。
  2.二進制值
  在註冊表中二進制值是沒有長度限制的,可以是任意字節長。在註冊表編輯器中,二進制以十六進制的方式表示。在本站中以"a"=hex:01,00,00,00方式表示。
  3.DWORD值
  DWORD值是一個32位(4個字節)的數值。在註冊表編輯器中也是以十六進制的方式表示。在本站中以"a"=dword:00000001表示。
註冊表的備份與恢復
  如果註冊表遭到破壞,Windows將不能正常運行,為了確保Windows系統安全, 我們必須經常的備份註冊表。
  Windows每次正常啟動時,都會對註冊表進行備份,System.dat備份為System.da0, User.dat備份為User.da0。它們存放在Windows所在的文件夾中,屬性為系統和隱藏。
  以下為2種備份註冊表的方法:
  1,利用Windows中的註冊表編輯器(Regedit.exe)進行備份
  運行Regedit.exe,單擊“文件“-->“導出註冊表文件“命令,選擇保存的路徑,保存的文件為*.reg, 可以用任何文本編輯器進行編輯。
  2,利用Win95光盤上Other\Misc\ERU\ERU.EXE緊急事故恢復工具(Emergency Recovery Utility)。利用這個工具不但可以備份和恢復註冊表,還可以備份硬盤中的任何文件。
  恢復:
  當註冊表損壞時,啟動時Windows會自動用System.dat和User.dat的備份System.da0和User.da0進行恢復工作,如果不能自動恢復,可以運行Regedit.exe(它可以運行在在Windows下或DOS下),導入.reg備份文件。也可以運行ERU.EXE進行恢復。
  如果您沒有進行備份或者註冊表損壞的非常嚴重,那麼您可以試試最後一著:在c:\下有一個System.1st文件,屬性為隱藏和只讀,它記錄著安裝Windows時的計算機硬件軟件信息,用這個文件覆蓋System.dat。但是這樣的話您安裝的應用軟件可能會無法運行,必須重新安裝。
註冊表修改方法
  通過修改註冊表我們可以實現一些特殊的功能,但是註冊表又是十分脆弱的,一個不小心就會出現錯誤。那麼我們怎麼樣來修改註冊表呢?我總結為以下幾種方法:
  1.軟件修改(安全)
  通過一些專門的修改工具來修改註冊表,比如:MagicSet、TweakUI、WinHacker等等。其實控制面板就是一個這樣的工具,只不過功能簡單一些。
  2.間接修改(比較安全)
  將要修改的寫入一個.reg文件中,然後導入註冊表中。.reg文件的基本格式為:
REGEDIT4
[HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet]
"@"="Super Rabbit Magic Set For Windows 98 V2.92"
"a"=dword:00000001
"b"=hex:02,05,00,00
……
[HKEY_LOCAL_MACHINE\Software\SCC\QuickViewer]
……
  第一行為“REGEDIT4”,必須大寫。
  第二行為空行。
  第三行使用[]括起子鍵分支,其中HKEY_LOCAL_MACHINE\Software\Super Rabbit\MagicSet就是一個子鍵分支。
  第四、五、六行是該子鍵下的設置數據。其中@表示註冊表編輯器右窗格中的"默認"鍵。
  以下類似。
  這樣做的好處是可以避免錯誤的寫入或刪除等操作,但是要求用戶了解註冊表的內部結構和.reg文件的格式。
  3.直接修改(最不安全,但最直接有效)
  就是通過註冊表編輯器直接的來修改註冊表的鍵值數據項,這樣做會避免在註冊表中留下垃圾(雖然都很小,但越來越多會拖慢系統速度),但是要求用戶有一定的註冊表知識,熟悉註冊表內部結構而且一定要小心謹慎。