什麼是HKEY_CLASSES_ROOT?

有關HKEY_CLASSES_ROOT註冊表配置單元的詳細信息

HKEY_CLASSES_ROOT通常縮寫為HKCR ,是Windows註冊表中註冊表配置單元 ,包含文件擴展名關聯信息以及編程標識符(ProgID),類ID(CLSID)和接口ID(IID)數據。

盡可能以最簡單的方式,HKEY_CLASSES_ROOT註冊表配置單元包含Windows的必要信息,以便在您要求它執行某些操作時知道該執行什麼操作,例如查看驅動器的內容或打開某種類型的文件等。

如何進入HKEY_CLASSES_ROOT

HKEY_CLASSES_ROOT是一個註冊表配置單元,因此位於註冊表編輯器的頂層:

  1. 打開註冊表編輯器
  2. 在註冊表編輯器的左側找到HKEY_CLASSES_ROOT
  3. 雙擊或雙擊單詞HKEY_CLASSES_ROOT以展開配置單元,或使用左側的小箭頭

如果以前在您的計算機上使用過註冊表編輯器,則可能需要先折疊所有打開的註冊表項,然後才能看到HKEY_CLASSES_ROOT配置單元。 這可以通過與打開相同的方式完成 - 通過雙擊/點擊它們或通過選擇箭頭。

HKEY_CLASSES_ROOT中的註冊表子項

HKEY_CLASSES_ROOT配置單元下的註冊表項列表非常長,同樣令人困惑。 我無法解釋你可能會看到的數千個密鑰中的每一個,但是我可以將它分解成一些可管理的部分,這將有望澄清註冊表的這一部分。

以下是您可以在HKEY_CLASSES_ROOT配置單元下找到的許多文件擴展名關聯密鑰中的一部分,其中大部分將以一段時間開始:

這些註冊表鍵中的每一個都存儲有關Windows雙擊或雙擊帶有該擴展名的文件時應執行的操作的信息。 它可能包括右擊/輕敲文件時在“打開方式”部分中找到的程序列表,以及列出的每個應用程序的路徑。

例如,在我的電腦上,當我用draft.rtf的名稱雙擊或雙擊文件時,寫字板打開文件。 發生這種情況的註冊表數據存儲在HKEY_CLASSES_ROOT \ .rtf項中,該項在我的計算機上將寫字板定義為應打開RTF文件的程序。

警告:由於如何設置HKEY_CLASSES_ROOT項的複雜性,我絕對建議您更改註冊表中的默認文件關聯。 相反,請參閱如何在Windows中更改文件關聯以獲取有關在常規Windows界面中執行此操作的說明。

HKCR& CLSID,ProgID,& IID

HKEY_CLASSES_ROOT中的其餘鍵是ProgID,CLSID和IID鍵。 以下是各自的一些示例:

ProgID鍵位於HKEY_CLASSES_ROOT的根目錄 ,與上面討論的文件擴展名關聯一起:

所有CLSID鍵位於CLSID子項下:

所有IID密鑰都位於Interface子項下:

ProgID,CLSID和IID鍵與計算機編程的一些非常技術性的方面有關,並且超出了本討論的範圍。 但是,您可以分別在這里和這裡閱讀更多關於這三個地方的信息。

備份HKEY_CLASSES_ROOT配置單元

毫無例外,您應該始終對您計劃編輯或刪除的任何註冊表項進行備份。 如果您需要將HKEY_CLASSES_ROOT或註冊表中的任何其他位置備份到REG文件 ,請參閱如何備份Windows註冊表

如果出現問題,您可以隨時通過備份將Windows註冊表恢復到工作狀態。 您只需雙擊或雙擊該REG文件並確認您想要進行這些更改。

更多關於HKEY_CLASSES_ROOT

儘管您可以編輯並完全刪除HKEY_CLASSES_ROOT配置單元的任何子項,但根文件夾本身(如註冊表中的所有配置單元)不能被重命名或刪除。

HKEY_CLASSES_ROOT是一個全局配置單元,這意味著它可以包含適用於計算機上所有用戶的信息,並且可供所有用戶查看。 這與一些蜂巢相反,蜂巢的信息僅適用於當前登錄的用戶。

但是,因為HKEY_CLASSES_ROOT配置單元實際上是在HKEY_LOCAL_MACHINE配置單元( HKEY_LOCAL_MACHINE \ Software \ Classes )和HKEY_CURRENT_USER配置單元( HKEY_CURRENT_USER \ Software \ Classes )中找到的組合數據,所以它也包含用戶特定的信息。 即使是這樣,HKEY_CLASSES_ROOT仍然可以被任何和所有用戶瀏覽。

當然,這意味著當在HKEY_CLASSES_ROOT配置單元中創建一個新的註冊表項時,HKEY_LOCAL_MACHINE \ Software \ Classes中將出現同一個註冊表項,並且在從其中一個中刪除一個時,同一個密鑰將從其他位置中刪除。

如果註冊表項駐留在兩個位置,但以某種方式衝突,則在登錄用戶的配置單元HKEY_CURRENT_USER \ Software \ Classes中找到的數據優先並在HKEY_CLASSES_ROOT中使用。