- Что такое HKEY_CLASSES_ROOT?
- Подробная информация о кусте реестра HKEY_CLASSES_ROOT
- Как добраться до HKEY_CLASSES_ROOT
- Подразделы реестра в HKEY_CLASSES_ROOT
- HKCR & CLSID, ProgID и IID
- Резервное копирование куста HKEY_CLASSES_ROOT
- Подробнее о HKEY_CLASSES_ROOT
- HKEY_CLASSES_ROOT Key
- Изучаем раздел HKEY_CLASSES_ROOT
- Читайте также
- Монтируем раздел
- Изучаем мир тви-символов
- Глава 4 Корневой раздел HKEY_CLASSES_ROOT
- Раздел расширения
- Раздел идентификатора
- Раздел Control Set NNN
- Раздел Select
- Раздел помощи
- Раздел отладки
- Изучаем скрытые возможности Windows 7
- Часть I Изучаем компьютер
Что такое HKEY_CLASSES_ROOT?
Подробная информация о кусте реестра HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT, часто сокращенно обозначаемый как HKCR , является кустом реестра в реестре Windows и содержит информацию об ассоциации расширений файлов, а также программный идентификатор (ProgID), идентификатор класса (CLSID) и идентификатор интерфейса (IID) ) данные.
Проще говоря, куст реестра HKEY_CLASSES_ROOT содержит необходимую информацию, чтобы Windows знала, что делать, когда вы просите ее что-то сделать, например просмотреть содержимое диска или открыть файл определенного типа и т. Д.
Как добраться до HKEY_CLASSES_ROOT
HKEY_CLASSES_ROOT – куст реестра и находится на верхнем уровне в редакторе реестра, в корне всего реестра Windows:
Откройте редактор реестра.
Самый простой способ сделать это во всех версиях Windows – открыть диалоговое окно «Выполнить» с помощью WIN + R , и ввести regedit .
Найдите HKEY_CLASSES_ROOT в левой части редактора реестра.
Вы можете увидеть его не сразу, если недавно использовали реестр и оставили открытыми различные ульи или ключи. Нажмите Домой на клавиатуре, чтобы увидеть HKCR в верхней части левой панели.
Дважды нажмите или дважды нажмите HKEY_CLASSES_ROOT , чтобы развернуть улей, или используйте небольшую стрелку влево
Подразделы реестра в HKEY_CLASSES_ROOT
Список разделов реестра в кусте HKEY_CLASSES_ROOT очень длинный и столь же запутанный. Мы не можем объяснить каждый из тысяч ключей, которые вы можете увидеть, но мы можем разбить его на несколько управляемых частей, которые, надеюсь, немного прояснят эту часть реестра.
Вот некоторые из многих ключей ассоциации расширений файлов, которые вы найдете в кусте HKEY_CLASSES_ROOT, большинство из которых начинается с точки:
- HKEY_CLASSES_ROOT \ .avi
- HKEY_CLASSES_ROOT \ .bmp
- HKEY_CLASSES_ROOT \ .exe
- HKEY_CLASSES_ROOT \ .html
- HKEY_CLASSES_ROOT \ .pdf
- HKEY_CLASSES_ROOT \ AudioCD
- HKEY_CLASSES_ROOT \ dllfile
- …
Каждый из этих разделов реестра хранит информацию о том, что должна делать Windows, если дважды щелкнуть или дважды щелкнуть файл с таким расширением. Он может включать в себя список программ, найденных в разделе «Открыть с помощью …» при щелчке правой кнопкой мыши/касании файла, и путь к каждому указанному приложению.
Например, на вашем компьютере, если дважды щелкнуть или дважды щелкнуть файл с именем draft.rtf , WordPad может открыть файл. Данные реестра, которые делают это, хранятся в ключе HKEY_CLASSES_ROOT \ .rtf , который определяет WordPad как программу, которая должна открывать файл RTF.
Из-за сложности настройки ключей HKEY_CLASSES_ROOT мы абсолютно не рекомендуем вам изменять ассоциации файлов по умолчанию из реестра. Вместо этого см. Как изменить сопоставление файлов в Windows для получения инструкций по выполнению этого из вашего обычного интерфейса Windows.
HKCR & CLSID, ProgID и IID
Остальные ключи в HKEY_CLASSES_ROOT – это ключи ProgID, CLSID и IID. Вот несколько примеров каждого:
Ключи ProgID находятся в корне HKEY_CLASSES_ROOT вместе с ассоциациями расширений файлов, рассмотренными выше:
- HKEY_CLASSES_ROOT \ FaxServer.FaxServer
- HKEY_CLASSES_ROOT \ JPEGFilter.CoJPEGFilter
- HKEY_CLASSES_ROOT \ WindowsMail.Envelope
- …
Все ключи CLSID находятся в подразделе CLSID :
- HKEY_CLASSES_ROOT \ CLSID \
- HKEY_CLASSES_ROOT \ CLSID \
- HKEY_CLASSES_ROOT \ CLSID \
- …
Все ключи IID находятся в подразделе Интерфейс :
- HKEY_CLASSES_ROOT \ Interface \
- HKEY_CLASSES_ROOT \ Interface \
- HKEY_CLASSES_ROOT \ Interface \
- …
Для чего нужны ключи ProgID, CLSID и IID, они связаны с некоторыми очень техническими аспектами компьютерного программирования и выходят за рамки этого обсуждения. Тем не менее, вы можете прочитать больше обо всех трех здесь, здесь и здесь, соответственно.
Резервное копирование куста HKEY_CLASSES_ROOT
Без исключения, вы всегда должны делать резервные копии любых записей реестра, которые вы планируете редактировать или удалять. См. Как сделать резервную копию реестра Windows, если вам нужна помощь в резервном копировании HKEY_CLASSES_ROOT или любого другого места в реестре в файл REG.
Если что-то пойдет не так, вы всегда можете восстановить реестр 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_US/Software \> C) также содержит специфичную для пользователя информацию. Даже если это так, HKEY_CLASSES_ROOT по-прежнему может просматривать любой пользователь.
Это, конечно, означает, что когда новый ключ реестра создается в кусте HKEY_CLASSES_ROOT, тот же самый будет появляться в HKEY_LOCAL_MACHINE \ Software \ Classes , и когда один из них удаляется из любого из них, тот же ключ удалены из другого места.
Если раздел реестра находится в обоих местах, но каким-то образом конфликтует, данные, найденные в кусте вошедшего в систему пользователя, HKEY_CURRENT_USER \ Software \ Classes , имеют приоритет и используются в HKEY_CLASSES_ROOT.
HKEY_CLASSES_ROOT Key
The HKEY_CLASSES_ROOT (HKCR) key contains file name extension associations and COM class registration information such as ProgIDs, CLSIDs, and IIDs. It is primarily intended for compatibility with the registry in 16-bit Windows.
Class registration and file name extension information is stored under both the HKEY_LOCAL_MACHINE and HKEY_CURRENT_USER keys. The HKEY_LOCAL_MACHINE\Software\Classes key contains default settings that can apply to all users on the local computer. The HKEY_CURRENT_USER\Software\Classes key contains settings that apply only to the interactive user. The HKEY_CLASSES_ROOT key provides a view of the registry that merges the information from these two sources. HKEY_CLASSES_ROOT also provides this merged view for applications designed for previous versions of Windows.
The user-specific settings have priority over the default settings. For example, the default setting might specify a particular application to handle .doc files. But a user can override this setting by specifying a different application in the registry.
Registry functions such as RegOpenKeyEx or RegQueryValueEx allow you to specify the HKEY_CLASSES_ROOT key. When you call these functions from a process running in the interactive user account, the system merges the default settings in HKEY_LOCAL_MACHINE\Software\Classes with the interactive user’s settings at HKEY_CURRENT_USER\Software\Classes. For more information on how these settings are merged, see Merged View of HKEY_CLASSES_ROOT.
To change the settings for the interactive user, store the changes under HKEY_CURRENT_USER\Software\Classes rather than HKEY_CLASSES_ROOT.
To change the default settings, store the changes under HKEY_LOCAL_MACHINE\Software\Classes. If you write keys to a key under HKEY_CLASSES_ROOT, the system stores the information under HKEY_LOCAL_MACHINE\Software\Classes. If you write values to a key under HKEY_CLASSES_ROOT, and the key already exists under HKEY_CURRENT_USER\Software\Classes, the system will store the information there instead of under HKEY_LOCAL_MACHINE\Software\Classes.
Processes running in a security context other than that of the interactive user should not use the HKEY_CLASSES_ROOT key with the registry functions. Instead, such processes can explicitly open the HKEY_LOCAL_MACHINE\Software\Classes key to access the default settings. To open a registry key that merges the contents of HKEY_LOCAL_MACHINE\Software\Classes with the settings for a specified user, these processes can call the RegOpenUserClassesRoot function. For example, a thread that is impersonating a client can call RegOpenUserClassesRoot if it needs to retrieve a merged view for the client being impersonated. Note that RegOpenUserClassesRoot fails if the user profile for the specified user has not been loaded. The system automatically loads the profile for the interactive user when logging on. For other users, you need to call the LoadUserProfile function to explicitly load the user’s profile.
If an application is run with administrator rights and User Account Control is disabled, the COM runtime ignores the per-user COM configuration and accesses only the per-machine COM configuration. Applications that require administrator rights should register dependent COM objects during installation to the per-machine COM configuration store (HKEY_LOCAL_MACHINE\Software\Classes). For more information, see AC: UAC: COM Per-User Configuration.
Windows ServerВ 2003 and WindowsВ XP/2000: Applications can register dependent COM objects to either the per-machine or per-user COM configuration store (HKEY_LOCAL_MACHINE\Software\Classes or HKEY_CURRENT_USER\Software\Classes).
Изучаем раздел HKEY_CLASSES_ROOT
Изучаем раздел HKEY_CLASSES_ROOT
Для того чтобы стать настоящим специалистом по работе с реестром, необходимо свободно разбираться в структуре раздела HKEY_CLASSES_ROOT . Почему это так важно? А потому, что именно здесь сосредоточена основная информация, которую система использует при работе с файлами. Вы щелкаете в Проводнике на каком-нибудь документе, и Windows запускает программу, которая связана с этим документом. Расширения файлов, их связи с программами, вывод на печать, значки для зарегистрированных типов документов и многое другое – все это хранится в разделе HKEY_CLASSES_ROOT . Не случайно данный раздел по умолчанию закрыт для редактирования, чтобы не повредить систему непродуманными дейст виями.
Структура раздела HKEY_CLASSES_ROOT
Типы файлов и их связи с программами определяются системой, которая считывает информацию с раздела HKEY_CLASSES_ROOT . Множество типов файлов уже зарегистрировано в системе во время установки операционной системы, такие, как BMP, TXT, HTM. Некоторые типы файлов появляются в реестре во время установки новых приложений от сторонних производителей. Например, при установке архиватора WinRAR в системе появляются ассоциации с файлами RAR, а после установки PhotoShop – с файлами PSD. После установки Visual Studio операционная система начинает распознавать множество самых разных файлов – CPP, CS, VB, SLN и т. д. Вы тоже можете придумать свое расширение для файла и зарегистрировать его в Windows. Причем сделать это довольно легко, и после прочтения этой главы вы без проблем сможете создавать свои типы файлов.
Каждому зарегистрированному типу файлов соответствуют два подраздела в разделе HKEY_CLASSES_ROOT . Имя первого подраздела соответствует расширению файла и содержит идентификатор ( name_ID ).
Рассмотрим сказанное на примере текстового файла TXT. Запустите редактор реестра и перейдите в раздел HKEY_CLASSES_ROOT . Теперь найдите в нем раздел .txt . (рис. 4.5).
Рис. 4.5. Раздел HKEY_CLASSES_ROOT txt
Обратите внимание, что параметр по умолчанию для данного раздела содержит значение txtfile , которое является идентификатором. Таким образом, нам теперь нужно найти раздел txtfile , чтобы найди дополнительную информацию о текстовых файлах. Поэтому переходим в раздел txtfile (рис. 4.6) для дальнейшего изучения.
Рис. 4.6. Раздел HKEY_CLASSES_ROOT xtfile
Посмотрим на значение по умолчанию. Здесь дается текстовое описание для заданного типа файлов. В моем случае это значение равно Text Document . Если у вас стоит нелокализованная версия Windows, то этот текст и будет виден в описании файла, когда пользователь подводит указатель мыши. Также мы видим здесь параметр EditFlags , о котором поговорим чуть позже.
У всех зарегистрированных типов файлов имеется подраздел DefaultIcon . Как нетрудно догадаться из названия, здесь хранится информация о значке, который сопоставлен с текстовыми файлами. Для самопроверки можете с помощью программы IconViewer убедиться в этом. Например, для текстового файла параметр равен %SystemRoot%system32imageres.dll,-102 . Значит, значок для текстового файла содержится в файле imageres.dll под номером 102 (рис. 4.7).
Рис. 4.7. Раздел HKEY_CLASSES_ROOT xtfileDefaulticon
Если вы хотите, чтобы выводился ваш собственный значок, то можете указать полный путь к вашему значку или файлу, содержащему значок.
Следующий раздел, который нас интересует, – это раздел shell . Данный раздел очень важен для системы, так как Windows именно отсюда берет информацию о том, какие действия нужно предпринимать при двойном щелчке и других операциях. Раздел shell содержит для этой цели несколько подразделов, иногда называемых глаголами (verb). Существует несколько стандартных преопределенных глаголов: edit, open, print, printto . Если вызвать контекстное меню у файла, то в нем могут присутствовать команды Открыть, Печать, Изменить , которым соответствуют глаголы open, print и edit . Каждый подраздел-глагол в свою очередь содержит подраздел command , который содержит командную строку в параметре по умолчанию (рис. 4.8).
Рис. 4.8. Раздел HKEY_CLASSES_ROOT xtfileShellopencommand
Например, при двойном щелчке мыши на файле запускается программа, прописанная в разделе open . Здесь стоит обратить внимание на подстроку %1, входящую в командную строку:
%SystemRoot%system32NOTEPAD.EXE-%1
При запуске программы Блокнот параметр %1 заменяется именем выбранного файла. Таким образом, когда пользователь щелкает на файле sample .txt, который находится на диске D: , то система запускает программу C:Windowssystem32 otepad.exe с файлом D:sample.txt .
Данный текст является ознакомительным фрагментом.
Продолжение на ЛитРес
Читайте также
Монтируем раздел
Монтируем раздел Итак, файловая система создана и готова к эксплуатации. Для того чтобы получить доступ к разделу (возможность чтения и записи информации на нем), необходимо его монтировать. Если точка монтирования /mnt/lfs, перейти к этому разделу можно с помощью команды cd
Изучаем мир тви-символов
Изучаем мир тви-символов С. Кара-Мурза в своей книге «Демонтаж народа» описывает мир символов. Он говорит, что «мир символов упорядочивает историю, связывает в нашей коллективной жизни прошлое, настоящее и будущее». Действительно, символы значат для нас чрезвычайно
Глава 4 Корневой раздел HKEY_CLASSES_ROOT
Глава 4 Корневой раздел HKEY_CLASSES_ROOT В данной главе будет рассмотрен корневой раздел реестра HKEY_CLASSES_ROOT. Начнем с общих сведений о реестре.Реестр Windows — это большая база данных, хранящая сведения обо всех настройках операционной системы. Будь то настройка цвета окна или
Раздел расширения
Раздел расширения Как уже говорилось, раздел расширения включает в себя параметр (По умолчанию), значение которого определяет название раздела идентификатора, описывающего данное расширение. Но, кроме этого параметра, раздел расширения может содержать еще несколько
Раздел идентификатора
Раздел идентификатора Теперь поговорим о содержимом второго раздела, используемого для описания расширения.Кроме разделов идентификаторов для расширений файлов, в системе также существуют стандартные идентификаторы Windows, описывающие такие объекты, как папка, диск,
Раздел Control Set NNN
Раздел Control Set NNN Теперь подробнее поговорим о самых важных разделах ветви системного реестра HKEY_LOCAL_MACHINESYSTEM. Первыми из них будут разделы формата ControlSetNNN и раздел CurrentControlSet. Об их важности говорит уже то, что, хотя в системе может содержаться несколько разделов формата
Раздел Select
Раздел Select Но как же система узнает, какой из разделов ControlSetNNN необходимо использовать при обычной загрузке, какой нужно применять при загрузке последней удачной конфигурации, а какой вообще является испорченным? Именно для этих целей и предназначен раздел Select. Он
Раздел помощи
Раздел помощи Очень важно, чтобы на сайте был выделен раздел помощи на главной странице и человек знал, что он может посмотреть ответы на типичные вопросы или задать собственный. Это сильно повышает
Раздел отладки
Раздел отладки В версии 4.9 задачника Programming Taskbook появились средства, позволяющие выводить отладочную информацию непосредственно в окно задачника (в специальный раздел отладки). Необходимость в подобных дополнительных средствах возникает, прежде всего, при работе с
Изучаем скрытые возможности Windows 7
Изучаем скрытые возможности Windows 7 Внутренняя переписка главы подразделения Windows Стивена Синофски со своими коллегами позволила узнать о том, что новая операционная система Windows 7 обладает некоторыми специальными возможностями, о которых прямо заявлено не
Часть I Изучаем компьютер
Часть I Изучаем компьютер В части I вы узнаете, что такое компьютер, из чего он состоит, и научитесь работать в среде Windows. Также мы рассмотрим некоторые наиболее популярные программы, необходимые для нормального функционирования вашей машины, — утилиты Windows, текстовые