HKEY_CLASSES_ROOT金鑰
HKEY_CLASSES_ROOT (HKCR) 金鑰包含擴展名關聯和 COM 類別註冊資訊,例如 ProgIDs、CLSID,以及 IID。 它主要是為了與16位 Windows 中的登錄相容。
類別註冊和擴展名資訊會儲存在 HKEY_LOCAL_MACHINE 和 HKEY_CURRENT_USER 金鑰下。 HKEY_LOCAL_MACHINE\Software\Classes 金鑰包含預設設定,可套用至本機計算機上的所有使用者。 HKEY_CURRENT_USER\Software\Classes 金鑰包含僅適用於互動式用戶的設定。 HKEY_CLASSES_ROOT 機碼提供登錄的檢視,以合併這兩個來源的資訊。 HKEY_CLASSES_ROOT 也提供針對舊版 Windows 所設計之應用程式的這個合併檢視。
使用者特定的設定優先於預設設定。 例如,預設設定可能會指定要處理.doc檔案的特定應用程式。 但使用者可以藉由在登錄中指定不同的應用程式來覆寫此設定。
RegOpenKeyEx 或 RegQueryValueEx 等登錄功能可讓您指定 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\Classes 或 HKEY_CURRENT_USER\Software\Classes)。
相關主題