登錄表呈樹狀結構:Key(鍵) 類似資料夾,Value(值) 類似檔案。每個 Value 由 Name/Type/Data 組成,通常以 Name 索引。

Windows 提供三種程式化存取方式:
CRegKey 類別(ATL 封裝)這些 API 皆為原子操作:只能列舉當前 Key 下的 Subkey 與 Value,無法一次查詢深層結構。正如 dir 只能看當前目錄,無法遞迴顯示子目錄內容。

| 函數 | 主要參數 | 用途 |
|---|---|---|
RegOpenKeyEx | 欲存取鍵控制代碼、子鍵路徑、存取權限、回傳鍵控制代碼 | 開啟指定鍵 |
RegQueryKeyInfo | 欲存取鍵控制代碼、回傳子鍵數目 | 取得子鍵數量 |
RegEnumKeyEx | 欲存取鍵控制代碼、子鍵索引、回傳子鍵名稱 | 逐一列舉子鍵名稱 |
RegQueryValueEx | 欲存取鍵控制代碼、欲查詢 Value 名稱 | 查詢 Value 是否存在及資料 |
為提升效能,鍵控制代碼以長整數(HKEY)表示。
RegOpenKeyEx 開啟起始鍵。RegQueryValueEx 檢查目前鍵是否包含目標 Value。
RegQueryKeyInfo 取得子鍵數量。
RegOpenKeyEx 並遞迴執行步驟 2。
遞迴遍歷是登錄表搜尋的基石。掌握核心 API 與遞迴邏輯,即可建立功能強大的登錄表搜尋工具。完整原始碼請參考本文附件。