Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах Книга Реестр Windows Vista. WMI - 2


Есть вопросы по работе с Windows? Задайте их нам и нашим посетителям в разделе Форум (http://onestyle.com.ua/q.php). Возможно, мы сможем помочь вам решить возникшие проблемы.

Уважаемые подписчики, вы часто пользуетесь нашим сайтом http://onestyle.com.ua? В таком случае скажите, что Вам не нравится на нашем сайте? Что бы Вы хотели изменить или добавить? Какими функциями нашего сайта пользоваться не так удобно, как Вам хотелось бы? В общем, подскажите, как нам изменить данный сайт, чтобы пользоваться им было удобнее? И какие дополнительные функции Вы хотели бы, чтобы мы добавили? Опишите свои предложения на форуме

Новости нашего сайта:

Продолжение, начало в выпусках: 1

В конец записи

Книга "Реестр Windows Vista. На 100%", Глава 1. Основные сведения о реестре, 1.3. Языки сценариев и реестр: Инструментарий управления Windows (WMI) - 2

Создание разделов реестра

Как было сказано выше, методы класса StdRegProv, редактирующие параметры реестра, не могут автоматически создавать подразделы реестра. Специально для этих целей класс StdRegProv поддерживает метод CreateKey.

Для работы метода CreateKey требуется указать два входящих параметра:

  • идентификатор корневого раздела ветви реестра;
  • остальной путь к ветви реестра, которую нужно создать.

Данные параметры уже были описаны нами ранее в этой книге.

Пример

В качестве примера давайте попробуем модифицировать созданную нами ранее функцию (листинг 2.10) для редактирования параметров реестра. Поскольку по умолчанию методы, редактирующие параметры реестра, не могут автоматически создавать несуществующие разделы реестра, также их не может создавать и наша функция. А вот в функции, реализованной в листинге 2.11, эта возможность добавлена.

Просмотр параметров реестра

Следующим набором методов класса StdRegProv, которые мы с вами рассмотрим, будут методы для считывания значений параметров реестра. Как и для операции редактирования значения параметров, для считывания также используется пять разных методов, каждый из которых считывает параметры определенного типа. По названию метода должно быть понятно, параметры какого типа данный метод поддерживает: GetDWORDValue, GetStringValue, GetMultiStringValue, GetExpandedStringValue и GetBinaryValue.

Все пять методов поддерживают одни и те же четыре входящих параметра:

  • идентификатор корневого раздела ветви реестра;
  • остальной путь к ветви реестра;
  • имя параметра;
  • название переменной, в которую будет помещено значение параметра.

Заметьте, что методы инструментария управления WMI работают с параметрами типа REG_BINARY и REG_MULTI_SZ как с массивами, поэтому для считывания значения параметров данного типа необходимо в качестве четвертого параметра метода указывать не обычную переменную, а массив.

Пример

В качестве примера считывания параметров из реестра давайте создадим функцию, которая бы использовалась вместо пяти методов класса StdRegProv (листинг 2.12).

Удаление параметров и разделов реестра

Для удаления разделов и параметров реестра применяются два метода — DeleteKey и DeleteValue.

Метод DeleteKey требует для своей работы два входящих параметра:

  • идентификатор корневого раздела;
  • остальной путь к удаляемой ветви реестра.

Метод DeleteValue кроме двух входящих параметров, аналогичных методу DeleteKey, также требует третий параметр — название параметра, который нужно удалить. Если вы оставите третий входящий параметр пустым, то метод удалит значение параметра (по умолчанию).

Чтение прав доступа к ветви реестра

Уникальной возможностью инструментария управления Windows, которой не обладают другие описанные нами ранее компоненты операционной системы, является возможность просмотра прав доступа текущего пользователя к определенной ветви реестра. Для этого используется метод CheckAccess.

Данный метод требует четыре входящих параметра:

  • идентификатор корневого раздела ветви реестра;
  • остальной путь к ветви реестра;
  • флаг проверяемых прав;
  • переменная для хранения результатов метода».

Флаг проверяемых прав Данный параметр является битовой маской, которая определяет права доступа текущего пользователя к ветви реестра, которые будут возвращены после работы данного метода.

  • 0x0001. Проверить, разрешено ли пользователю запрашивать значения из дочерних подразделов данной ветви реестра (KEY_QUERY_VALUE).
  • 0x0002. Проверить, разрешено ли пользователю создание, удаление и установка значений параметров данной ветви реестра (KEY_SET_VALUE).
  • 0x0004. Проверить, разрешено ли пользователю создание и удаление дочерних подразделов данной ветви реестра (KEY_CREATE_SUB_KEY).
  • 0x0008. Проверить, разрешено ли пользователю перечисление дочерних подразделов данной ветви реестра (KEY_ENUMERATE_SUB_KEYS).
  • 0x0010. Проверить, разрешено ли для данного пользователя выводить подтверждения на запрос изменения параметров или дочерних подразделов данной ветви реестра (KEY_NOTIFY).
  • 0x0020. Проверить, разрешено ли пользователю создавать ссылки на ветвь реестра (KEY_CREATE_LINK).
  • 0x00010000. Проверить, разрешено ли пользователю удалять данную ветвь реестра (DELETE).
  • 0x00020000. Проверить, разрешено ли пользователю чтение управляющей информации о данной ветви реестра (READ_CONTROL).
  • 0x00040000. Проверить, разрешено ли пользователю записывать информацию DAC для данной ветви (WRITE_DAC).
  • 0x00080000. Проверить, разрешено ли пользователю изменять владельца данной ветви реестра (WRITE_OWNER).

Переменная для хранения результатов метода Данный входящий параметр определяет название переменной или массива, в который метод CheckAccess будет помещать значения TRUE или FALSE, в зависимости от того, предоставлены ли текущему пользователю права, указанные битовой маской флаг проверяемых прав.

Перечисление параметров и ветвей данной ветви реестра

Еще одной уникальной возможностью класса StdRegProv является возможность перечисления параметров или разделов, которые расположены в указанной ветви реестра. Для этого используются два специальных метода: EnumValues и EnumKey.

Для работы метода EnumKey следует указать четыре входящих параметра:

  • идентификатор корневого раздела ветви реестра;
  • остальной путь к ветви реестра;
  • переменная, в которую будут помещены найденные в ветви разделы.

Метод EnumValues требует для своей работы пять входящих параметров. При этом первые четыре входящих параметра метода EnumValues совпадают с параметрами метода EnumKey. Пятый же параметр должен определять переменную, в которую будут помещаться названия типов найденных параметров.

Пример

В качестве примера давайте рассмотрим функцию, которая будет перечислять параметры определенной ветви реестра и отображать следующую информацию о найденных параметрах: название параметра, тип параметра, значение параметра.

Продолжение следует

Рейтинг: 0 
Оцените: 1 2 3 4 5
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=285

В избранное