主題: 註冊表攻略
查看單個文章
舊 2006-01-14, 01:26 PM   #2 (permalink)
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設

3、註冊表資料結構
  使用註冊表編輯器之前,首先得瞭解註冊表的資料結構,例如註冊表的顯示方式、主鍵與子鍵、鍵值項資料的檔案類型等等。

註冊表顯示方式
在Windows系統中,註冊表是採用「關鍵字」及其「鍵值」來描述登入項及其資料的。所有的關鍵字都是以「HKEY」作為前綴開頭。實際上,「關鍵字」是一個關鍵句。這種約定使得系統及應用程式的開發人員,可以在使用註冊表中的API函數時把它用於應用程式的開發中。為此,Windows提供了若干API函數,以便在開發 for Windows 應用程式時增加、修改、查詢和移除註冊表的登入項。
在註冊表中,關鍵字可以分為兩類:一類是由系統定義的,一般都稱為「預定義關鍵字」;另一類是由應用程式定義的,由於安裝的應用軟體不同,其登入項也就不同。在Windows系統中,開啟註冊表編輯器,可以看到註冊表中的關鍵字。
 註冊表通過主關鍵字(最上層的為「根鍵」,例如:HKEY_CURRENT_USERS就是一個根鍵,標題欄上也有顯示)和子鍵來管理各種訊息,下圖中的「Keyboard Layout」是一個主鍵,展開後就可以看到它裡面的子鍵。註冊表中的所有訊息是以各種形式的「鍵值項資料」儲存下來,如下圖中的鍵值項Attributes的資料為「REG_DWORD:0」。其中「REG_DWORD」是該鍵值的資料檔案類型;「0」是代表該鍵值被賦予的數值。
  在註冊表的左邊視窗中,所有的資料都是通過一種樹狀結構,以鍵和子鍵的方式組織起來,十分類似於檔案總管內的目錄結構。每個鍵都包含有一組特定的訊息,每個鍵的鍵名都是與它所包含的訊息相關的(註冊表內是以英文的方式出現,比如『Control Panel』表示的是控制台內的一些內容)。
  如果這個鍵包含子鍵,則在註冊表編輯器視窗的左邊出現一個「+」號,用來表示在這個資料夾內還有好多內容。如果這個資料夾被用戶開啟了,那麼「+」號就變為「-」號,與我們使用檔案總管的方法是一樣的。

註冊表中的「鍵值資料項」的檔案類型
  在註冊表中,「鍵值項資料」可分為下面三種檔案類型。
二進制(BINARY)
  在註冊表中,二進制是沒有長度限制的,可以是任意個字元的長度。在註冊表編輯器中,二進制資料以十六進制的方式顯示出來,如:「CustomColors」的鍵值就是一個二進制資料,雙按鍵值名,出現「編輯二進制數值」對話視窗,我們可以在二進制和十六進制之間進行切換。
  DWORD值(DWORD)
  DWORD值是一個32位(4個字元,即雙字)長度的數值。在註冊表編輯器中,你將會發現系統以十六進制的方式顯示DWORD值,在編輯DWORD數值時,可以選項用二進制、十進制或是十六進制的方式進行輸入。
字元串值(SZ)
  在註冊表中,字元串值一般用來表示文件的描述、硬體的標幟等。通常它由字母和數位組成。下圖文本輸入欄中的內容即為一個鍵值,它是一種字元串值檔案類型。通過鍵值名、鍵值就可以組成一種鍵值項資料,這就相當於Win.ini、System.ini文件中小節下的設定行。其實,使用註冊表編輯器將這些鍵值項資料匯出後,其形式與.ini文件中的設定完全一樣。
註冊表資料檔案類型
  註冊表的鍵中包含著各種不同格式的資料。資料檔案類型可以這樣來分類:
  通用資料檔案類型--RegEdit、RegEdt32及其它絕大多數註冊表工具都支持,並能夠對之進行編輯的資料檔案類型。
  Windows NT 專用資料檔案類型--RegEdt32和另外幾個註冊表工具支持,並能夠對其進行編輯的資料檔案類型。
  元件應用程式專用的特殊資料檔案類型--註冊表工具支持這些資料檔案類型,但是對於程序而言是有限度的。
  用戶則只能將其作為二進制數進行編輯。
  實際上,註冊表工具也可以對不支持的資料檔案類型進行編輯,包括那些顯示為REG_UNKNOWN檔案類型的資料。但是編輯僅能在二進制模式下進行,這就需要用戶對資料對象的格式非常瞭解。對於那些需要手動式修改註冊表的用戶來說,理解每一種資料檔案類型以及每一種檔案類型資料的儲存於格式是非常重要的。

現有註冊表資料檔案類型
 類 型    檔案類型索引   大 小      說 明

REG_BINARY   3   0~多個字元  可以包含任何資料的二進制對像顏色描述

REG_COLOR_RGB *   4字元     顏色描述

REG_DWORD   4   4字元     DWORD值

REG_DWORD_BIG_ENDIAN 5 4字元   一個DWORD值的逆序儲存於形式

REG_DWORD_LITTLE_ENDIAN 4 4字元  DWORD值

REG_EXPAND_SZ   2   0~多個字元 包含環境變數佔位符的字元串

REG_FILE_NAME  *     0~多個字元 檔案名

REG_FILE_TIME   *    未知    文件時間

REG_FULL_RESOURCE_DESCRIPTOR 9 未知 硬體資源列表

REG_LINK   6      0~多個字元 命名一個符號連接(symbolic link)的Unicode串

REG_MULTI_SZ 7 0~多個字元 以null字元分隔的字元串集合,集合中的最後一個字元串以兩個null字元結尾

REG_NONE 0 未知 REG_NONE檔案類型的對象無須分類,它與REG_UNKNOWN檔案類型不同

REG_RESOURCE_LIST 8 未知 設備使用的資源列表

REG_RESOURCE_REQUIREMENTS_LIST  10  未知   驅動程式要求的資源列表

REG_SZ   1   0~多個字元 以一個null字元線的字元串

REG_UNKNOWN  (未定義) 未知  因為資料檔案類型索引無效而無法確定的對象檔案類型
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次