Поделиться через


ключ HKEY_CLASSES_ROOT

Ключ HKEY_CLASSES_ROOT (HKCR) содержит связи расширений имен файлов и сведения о регистрации класса COM, такие как progIDs, CLSIDи идентификаторов. Он предназначен в первую очередь для обеспечения совместимости с реестром в 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 Configuration.

Windows Server 2003 и Windows XP/2000: приложения могут регистрировать зависимые COM-объекты в хранилище конфигураций COM для каждого компьютера или пользователя (HKEY_LOCAL_MACHINE\Software\Classes или HKEY_CURRENT_USER\Software\Classes).

HKEY_CLASSES_ROOT (справочник по реестру наборов ресурсов)