На этом занятии Вы познакомитесь с реестром Windows ХР и с тем, как Windows ХР использует его для хранения и доступа к параметрам оборудования и программного обеспечения.
По окончании этого занятия Вы сможете:
— рассказать о назначении реестра Windows ХР;
— рассказать, как компоненты Windows ХР используют реестр;
— идентифицировать структурные компоненты в иерархии реестра.
Необходимые условия
- Выполнение цикла работ по курсу “Информатика”, лабораторной работы 1 данного цикла.
- Регистрация на сетевой рабочей станции Windows ХР с правами:
— для локальной группы пользователей или
— для членов домена (по умолчанию).
Основные понятия
Реестр (Registry) представляет собой централизованную базу данных, которая содержит всю конфигурационную информацию аппаратной части и программного обеспечения операционной системы Windows.
Реестр разработан с целью исключения необходимости использования INI-файлов, хотя и продолжает поддерживать их в целях обратной совместимости.
Где находятся программы и компоненты в Windows 10
Реестр управляет операционной системой Windows ХР, предоставляя информацию, используемую при запуске приложений и загрузке компонентов, например драйверов устройств и сетевых протоколов.
Реестр содержит информацию о:
- оборудовании, установленном на компьютере, включая центральный процессор, тип шины, указательное устройство или мышь и клавиатуру;
- установленных драйверах устройств;
- установленных приложениях;
- установленных сетевых протоколах;
- настройках платы сетевого адаптера (номер прерывания, базовый адрес памяти, базовый адрес портов вводавывода, тип трансивера);
- учетных записях пользователей (например, о принадлежности пользователей группам, их правах доступа и привилегиях).
Просмотр реестра
Для просмотра и редактирования реестра Windows ХР служит RegistryEditor (Редактор реестра), который реализован двумя приложениями: REGEDIT и REGEDT32. Основное их отличие в том, что REGEDT32 позволяет устанавливать и снимать разрешения на ключи реестра. REGEDIT более удобен для функций поиска и экспорта информации. При наличии соответствующих разрешений REGEDIT и REGEDT32 позволяют вносить изменения в реестр.
ControlPanel (Панель управления), оснастки управления администратора и SystemPolicyEditor тоже меняют содержимое реестра. Удобный интерфейс этих средств помогает корректно настраивать систему. Запустите RegistryEditor командой REGEDIT, чтобы видеть содержимое реестра локального компьютера.
Хранение записей о внешних компонентах в реестре Windows
Теперь зайдем в программу regedit.exe (Пуск-Выполнить-Regedit.exe).
Если регистрация прошла успешно, то в реестре мы увидим следующие записи (я сделал поиск по подстроке «AddIn.Events» в редакторе реестра regedit.exe, нажав сочетание клавиш Ctrl-F):
Код
Реестр Windows: как он устроен и как с ним работать
Значение является уникальным для каждого OLE-объекта идентификатором (CLSID). Его должен явно задать разработчик в коде внешней компоненты.
Значение ProgID, которое в нашем случае — «AddIn.Events» также задает разработчик внешней компоненты.
Чтобы в реестре появились эти записи, необходимы права доступа:
Начиная с Windows 2000, обычный пользователь не имеет прав доступа к указанным выше ветвям реестра. Нужны права или администратора, или привилегированного пользователя Windows. После первой загрузки компонента пропишет себя в реестре, и ее смогут использовать и непривилегированные пользователи Windows.
Где 1С ищет внешнюю компоненту?
Если при загрузке внешней компоненты вы не указываете полный путь, такой как E:EventsEvents.dll или сетевой путь наподобие \ВашСерверПапкаГдеЛежатВКEvents.dll, то 1С ищет внешние компоненты
-относительно папки 1Cv7BIN (КаталогПрограммы())
-относительно каталога информационной базы (КаталогИБ())
Метод ЗагрузитьВнешнююКомпоненту(), обнаружив ВК по новому пути, обновляет ее регистрацию в реестре
Это означает, например, что на терминальном сервере программист, который вошел в тестовую базу, где лежит ВК, и потом ее стер, оставит у всех пользователей запись в реестре о несуществующей ВК.
Аналогичная проблема — когда ВК по данному пути недоступна тем или иным пользователям.
А поскольку пользователи не имеют права на изменение записей в реестре, то у них перестанет загружаться и внешняя компонента.
В 1С:Предприятие 8.0 убрана возможность загрузки ВК относительно каталога ИБ.
В 7.7 же, чтобы избежать проблем, всегда убирайте ВК из каталога ИБ, и прописывайте полные пути (или складывайте DLL в общую для всех пользователей папку BIN).
Кардинальное решение проблемы — VKLoader и RegsvrEx
Имеется компонента VKLoader.dll (автор — Александр Орефков), которая позволяет решить проблемы с регистрацией компонент.
Цитата:
«vkloader (далее ВК) — внешняя компонента для 1С-Предприятия 7.7, которая может загружаться без ее регистрации в реестре, и загружать другие внешние компоненты без их регистрации. Предназначена для беспроблемной загрузки внешних компонент пользователями, не имеющими прав на запись в HKCR ветку реестра.
Принцип работы основан на перехвате обращения 1С к WinAPI функциям CLSIDFromProgID и CoCreateInstance.
Также ВК решает проблему «зависания» процесса 1С в памяти при закрытии программы при использовании несовсем корректно написанных сторонних внешних компонент».
Пример использования vkloader:
ЗагрузитьВнешнююКомпоненту(«vkloader.dll»); //регистрации не требует
Загрузчик = СоздатьОбъект(«ЗагрузчикВК»);
Результат = Загрузчик.ЗагрузитьВК(«Events.dll», «Addin.Events=2E5E6B2C-EFE0-4872-9AB6-DF187B9CE397»);
Замечу, что сама vkloader «умеет» загружать себя без прав доступа к реестру.
Еще одно решение: RegsvrEx
Автор — AlexQC.
Регистрирует компоненты (OLE-объекты) в пользовательской ветке реестра.
RegsvrEX
Пример использования:
Код 1C v 7.x
Попытка
Объект=СоздатьОбъект(«cool.object»);
Исключение
ИмяДЛЛ=КаталогИБ()+»cool.ocx»;
КомандаСистемы(КаталогИБ()+»regsvrex.exe /s /c «+ИмяДЛЛ);
Попытка
Объект=СоздатьОбъект(«cool.object»);
Исключение
Сообщить(«Ошибка загрузки компоненты: «+ИмяDLL,»!»);
КонецПопытки;
КонецПопытки;
Источник: helpf.pro
Использование реестра компонентами Windows
Ниже приведены сведения об использовании системного реестра основными компонентами и приложениями Windows.
Компонент | Использование системного реестра |
Программа установки | Программа установки Windows и другие программы установки (приложений и оборудования) добавляют данные в системный реестр. Например, при установке в реестр записываются значения многих настраиваемых параметров приложений по умолчанию. Программы установки также выполняют чтение системного реестра для определения наличия в системе необходимых компонентов |
Определитель оборудования | При каждом запуске компьютера, работающего под управлением Windows, определитель оборудования помещает данные аппаратной конфигурации в реестр. Эти данные включают список оборудования, обнаруженного в системе. Диагностика действующего оборудования выполняется программами Ntdetect.com и Ntoskrnl.exe |
Ядро Windows | В процессе загрузки ОС ядро Windows извлекает из реестра необходимые данные, например перечень загружаемых драйверов и порядок загрузки. Кроме того, программа Ntoskrnl.exe записывает в реестр собственные данные (например номер версии) |
Драйверы устройств | Драйверы устройств заносят в реестр и извлекают из него параметры собственного запуска и настройки обслуживаемого оборудования. Драйвер устройства сообщает об использовании тех или иных системных ресурсов, например прерываний и каналов прямого доступа к памяти, после чего эти сведения записываются в системный реестр. Кроме того, программы и драйверы устройств используют данные реестра для автоматизации установки и настройки программ |
Приложения | Приложения используют реестр для хранения глобальных и пользовательских настроек. Например, Microsoft Word хранит в реестре список последних открытых пользователем документов. Многие приложения, являющиеся неотъемлемой частью ОС, например Проводник, также хранят свои настройки в реестре |
Источник: studopedia.su