HKEY_CLASSES_ROOT金鑰

HKEY_CLASSES_ROOT (HKCR) 金鑰包含副檔名關聯和 COM 類別註冊資訊,例如ProgIDCLSIDIID。 它主要用於與 16 位 Windows 中的登錄相容。

類別註冊和副檔名資訊會儲存在 HKEY_LOCAL_MACHINEHKEY_CURRENT_USER 金鑰之下。 HKEY_LOCAL_MACHINE\Software\Classes金鑰包含可套用至本機電腦上的所有使用者的預設設定。 HKEY_CURRENT_USER\Software\Classes金鑰包含僅適用于互動式使用者的設定。 HKEY_CLASSES_ROOT機碼提供登錄的檢視,可合併這兩個來源的資訊。 HKEY_CLASSES_ROOT 也會針對針對舊版 Windows 設計的應用程式提供此合併檢視。

使用者特定的設定優先于預設設定。 例如,預設設定可能會指定要處理.doc檔案的特定應用程式。 但使用者可以藉由在登錄中指定不同的應用程式來覆寫此設定。

RegOpenKeyExRegQueryValueEx等登錄函式可讓您指定HKEY_CLASSES_ROOT機碼。 當您從在互動式使用者帳戶中執行的進程呼叫這些函式時,系統會將 HKEY_LOCAL_MACHINE\Software\Classes中的預設 設定與互動式使用者的設定合併在 HKEY_CURRENT_USER\Software\Classes。 如需如何合併這些設定的詳細資訊,請參閱 合併HKEY_CLASSES_ROOT的合併檢視

若要變更互動式使用者的設定,請將變更儲存在 HKEY_CURRENT_USER\Software\Classes 下,而不是 HKEY_CLASSES_ROOT

若要變更預設設定,請將變更儲存在 HKEY_LOCAL_MACHINE\Software\Classes底下。 如果您將金鑰寫入 HKEY_CLASSES_ROOT下的金鑰,系統會將資訊儲存在 HKEY_LOCAL_MACHINE\Software\Classes底下。 如果您將值寫入 HKEY_CLASSES_ROOT底下的索引鍵,且索引鍵已存在於 HKEY_CURRENT_USER\Software\Classes底下,則系統會將資訊儲存在該處,而不是儲存 在HKEY_LOCAL_MACHINE\Software\Classes底下。

在互動式使用者以外的安全性內容中執行的進程不應搭配登錄函式使用 HKEY_CLASSES_ROOT 機碼。 相反地,這類程式可以明確開啟 HKEY_LOCAL_MACHINE\Software\Classes 金鑰來存取預設設定。 若要開啟將 HKEY_LOCAL_MACHINE\Software\Classes 內容與指定使用者的設定合併的登錄機碼,這些進程可以呼叫 RegOpenUserClassesRoot 函式。 例如,如果模擬用戶端的執行緒需要擷取模擬用戶端的合併檢視,則可以呼叫RegOpenUserClassesRoot。 請注意,如果未載入指定使用者的使用者設定檔, RegOpenUserClassesRoot 就會失敗。 系統會在登入時自動載入互動式使用者的設定檔。 對於其他使用者,您必須呼叫 LoadUserProfile 函式,以明確載入使用者的設定檔。

如果使用系統管理員許可權執行應用程式,且使用者帳戶控制已停用,則 COM 執行時間會忽略每個使用者的 COM 組態,並只存取每部電腦 COM 組態。 需要系統管理員許可權的應用程式應該在安裝至個別電腦 COM 組態存放區期間註冊相依 COM 物件, (HKEY_LOCAL_MACHINE\Software\Classes) 。 如需詳細資訊,請參閱 AC:UAC:COM Per-User組態

Windows Server 2003 和 Windows XP/2000: 應用程式可以將相依的 COM 物件註冊至每部電腦或個別使用者的 COM 組態存放區, (HKEY_LOCAL_MACHINE\Software\ClassesHKEY_CURRENT_USER\Software\Classes)

HKEY_CLASSES_ROOT (Resource Kit 登錄參考)