不同類型的註冊表值說明
Windows註冊表中充滿了稱為值的對象,其中包含Windows和應用程序引用的特定指令。
存在許多種註冊表值,所有這些都在下面解釋。 它們包括字符串值,二進制值,DWORD(32位)值,QWORD(64位)值,多字符串值和可擴展字符串值。
註冊表值位於何處?
註冊表值可以在Windows 10 , Windows 8 , Windows 7 , Windows Vista和Windows XP中的整個註冊表中找到。
在註冊表編輯器中,不僅是註冊表值,還有註冊表項和註冊表配置單元 。 這些對像中的每一個都像文件夾,並且在註冊表編輯器的左側出現。 然後,註冊表值就像存儲在這些密鑰和它們的“子密鑰”中的文件一樣。
選擇一個子鍵將在註冊表編輯器的右側顯示它的所有註冊表值。 這是Windows註冊表中唯一可以看到註冊表值的地方 - 它們不會列在左側。
以下是一些註冊表位置的幾個示例,註冊表值以粗體顯示:
- HKEY_LOCAL_MACHINE \ HARDWARE \ DESCRIPTION \ System \ BIOS \ BIOSVendor
- HKEY_CURRENT_USER \ Environment \ TEMP
- HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ CurrentUser
在每個示例中,註冊表值是最右邊的條目。 再次,在註冊表編輯器中,這些條目顯示為右側的文件。 每個值都保存在一個密鑰中,並且每個密鑰都始於註冊表配置單元(上面最左側的文件夾)。
這個確切的結構在整個Windows註冊表中保持不變。
註冊表值的類型
Windows註冊表中有幾種不同類型的註冊表值,每種註冊表值都是以不同的目的創建的。 某些註冊表值使用常規字母和數字,易於閱讀和理解,而其他註冊表值使用二進製或十六進製表示。
字符串值
字符串值由一個帶有字母“ab”的小紅色圖標表示。 這些是註冊表中最常用的值,也是最易讀的。 它們可以包含字母,數字和符號。
以下是一個字符串值的示例:
HKEY_CURRENT_USER \ Control Panel \ Keyboard \ KeyboardSpeed當您在註冊表中的此位置打開KeyboardSpeed值時,會給您一個整數,如31 。
在這個特定的例子中,字符串值定義了一個字符在鍵被按下時重複的速率。 如果要將值更改為0 ,則速度會比保持在31時慢得多。
Windows註冊表中的每個字符串值都用於不同的目的,具體取決於它在註冊表中的位置,並且每個字符串值在定義為不同的值時會執行特定的功能。
例如,位於Keyboard子鍵中的另一個字符串值是一個名為InitialKeyboardIndicators的字符串值。 而不是選擇一個介於0和31之間的數字,該字符串值只接受0或2,其中0表示當您的計算機首次啟動時,NUMLOCK鍵將被關閉,而值2會使NUMLOCK鍵打開默認。
這些不是註冊表中唯一的字符串值類型。 其他人可能指向文件或文件夾的路徑,或作為系統工具的描述。
一個字符串值在註冊表編輯器中作為“REG_SZ”類型的註冊表值列出。
多字符串值
多字符串值與字符串值類似,唯一的區別是它們可以包含值列表而不是一行。
Windows中的磁盤碎片整理程序工具使用以下多字符串值來定義服務應具有的權限的某些參數:
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ defragsvc \ RequiredPrivileges打開此註冊表值顯示它包含以下所有字符串值:
SeChangeNotifyPrivilege SeImpersonatePrivilege SeIncreaseWorkingSetPrivilege SeTcbPrivilege SeSystemProfilePrivilege SeAuditPrivilege SeCreateGlobalPrivilege SeBackupPrivilege SeManageVolumePrivilege並非註冊表中的所有多字符串值都會有多個條目。 有些函數的功能與單個字符串值完全相同,但如果需要更多條目,則需要額外的空間。
註冊表編輯器將多字符串值列為“REG_MULTI_SZ”類型的註冊表值。
可擴展字符串值
可擴展的字符串值就像上面的字符串值,只是它們包含變量。 當Windows或其他程序調用這些類型的註冊表值時,它們的值將擴展到變量所定義的值。
大多數可擴展字符串值在註冊表編輯器中很容易識別,因為它們的值包含%符號。
環境變量是可擴展字符串值的很好例子:
HKEY_CURRENT_USER \ Environment \ TMPTMP可擴展字符串值為%USERPROFILE%\ AppData \ Local \ Temp 。 這種類型的註冊表值的好處是數據不需要包含用戶的用戶名,因為它使用%USERPROFILE%變量。
當Windows或其他應用程序調用此TMP值時,它將轉換為該變量設置為的任何值。 默認情況下,Windows使用此變量來顯示像C:\ Users \ Tim \ AppData \ Local \ Temp這樣的路徑。
“REG_EXPAND_SZ”是註冊表編輯器列出可擴展字符串值的註冊表值類型。
二進制值
顧名思義,這些類型的註冊表值是用二進制編寫的。 他們在註冊表編輯器中的圖標是藍色的1和零。
HKEY_CURRENT_USER \ Control Panel \ Desktop \ WindowMetrics \ CaptionFont上面的路徑在Windows註冊表中找到, CaptionFont是二進制值。 在這個例子中,打開這個註冊表值顯示了Windows中字幕的字體名稱,但是它的數據是以二進制形式寫成的,而不是以常規的,人類可讀的形式寫入。
註冊表編輯器列出“REG_BINARY”作為二進制值的註冊表值的類型。
DWORD(32位)值和QWORD(64位)值
DWORD(32位)值和QWORD(64位)值在Windows註冊表中都有一個藍色圖標。 它們的值可以用十進製或十六進制格式表示。
一個應用程序可能創建一個DWORD(32位)值和另一個QWORD(64位)值的原因不在於它是從32位還是64位版本的Windows運行,而僅取決於位長度的價值。 這意味著您可以在32位和64位操作系統上同時擁有這兩種註冊表值。
在這種情況下,“字”意味著16位。 那麼DWORD表示“雙字”或32位(16×2)。 按照此邏輯,QWORD表示“四字”或64位(16 X 4)。
應用程序將創建它所需的適當註冊表值,以符合這些位長度規則。
以下是Windows註冊表中DWORD(32位)值的一個示例:
HKEY_CURRENT_USER \ Control Panel \ Personalization \ Desktop Slideshow \ Interval打開這個DWORD(32位)值可能會顯示1800000的數值數據(和1677的1b7740)。 此註冊表值定義了您的屏幕保護程序在照片幻燈片中移動通過每張幻燈片的速度(以毫秒為單位)。
註冊表編輯器將DWORD(32位)值和QWORD(64位)值分別顯示為“REG_DWORD”和“REG_QWORD”註冊表值類型。
備份& 恢復註冊表值
無論您是否只更改一個值, 都要在開始前進行備份,以確保您可以將其還原到註冊表編輯器,以防出現意外情況。
不幸的是,你無法備份單個註冊表值。 相反,您必須備份該值所在的註冊表項。請參閱如何備份Windows註冊表,如果您需要幫助,請執行此操作。
註冊表備份保存為REG文件 ,如果您需要撤消所做的更改,則可以將其恢復到Windows註冊表。 如果您需要幫助,請參閱如何還原Windows註冊表 。
何時需要打開/編輯註冊表值?
創建新的註冊表值或刪除/編輯現有的註冊表值可以解決您在Windows或其他程序中遇到的問題。 您也可以更改註冊表值來調整程序設置或禁用應用程序的功能。
有時,您可能需要打開註冊表值,僅用於信息目的。
以下是一些涉及編輯或打開註冊表值的示例:
有關對註冊表值進行更改的一般概述,請參閱如何添加,更改和刪除註冊表項和值 。
有關註冊表值的更多信息
打開註冊表值將允許您編輯其數據。 與啟動它們時計算機上的文件不同,只需打開註冊表值即可編輯它們。 換句話說,在Windows註冊表中打開任何註冊表值是完全安全的。 但是,在不知道自己在做什麼的情況下編輯值並不是一個好主意。
在某些情況下,只有重新啟動計算機後 ,更改註冊表值才會生效。 其他人根本不需要重新啟動,因此他們的更改將立即反映出來。 由於註冊表編輯器不會告訴您哪些需要重新啟動,因此如果註冊表編輯似乎不起作用,則應該重新啟動計算機。
您可能會在Windows註冊表中看到一些註冊表值為REG_NONE 。 這些是在將空數據寫入註冊表時創建的二進制值。 打開此類型的註冊表值將其值數據顯示為十六進制格式的零,註冊表編輯器將這些值列為(零長度二進制值) 。
使用命令提示符 ,您可以使用reg delete和reg add命令開關刪除和添加註冊表項。
註冊表項中所有註冊表值的最大大小限制為64千字節。