Реферат: Функции управления реестром Windows

Размер этого буфера определяется седьмым аргументом - lpcbClass.

Восьмой аргумент -lpftLastWriteTime - после завершения работы функции содержит время последнего обновления данного подключа.

Для того чтобы перебрать подключи, приложение должно сначала вызвать функцию RegEnumKeyEx() со вторым аргументом (dwIndex), равным нулю (поиск начинается с начала дерева). Если искомый ключ найден с первой попытки, то приложению повезло. В противном случае необходимо dwIndex увеличить на единицу и снова обратиться к функции. Так необходимо делать до тех пор, пока не будет найден искомый ключ или функция не вернет значение ERROR_NO_MORE_ITEMS. Естественно, что поиск можно производить и в обратном порядке. Для того чтобы поиск мог быть нормально осуществлен, ключ, хэндл которого указан первым аргументом, должен быть открыт с правом доступа KEY_ENUMERATE_SUB_KEYS.

Получить полную информацию о подключе можно с помощью функции RegQueryInfoKey(), аргументы которой в лекции рассматривать не будем. Допустим нужный нам подключ найден. Тогда в этом подключе необходимо найти нужные данные. Способ поиска точно такой же, как и в предыдущей функции. Для поиска необходимо перебрать все данные, связанные с подключом. Чтобы произвести этот перебор, обычно используется функция RegEnumValue(), описание которой, приведенное ниже, можно найти в файле winreg.h:

LONGRegEnumValue(HKEYhKey, DWORDdwIndex, LPSTRlpValueName, LPDWORDlpcbValueName, LPDWORDlpReserved, LPDWORDlpType, LPBYTElpData, LPDWORDlpcbData)

Параметры:

hKey – хэндл ключа, значения которого подлежат перечислению.

dwIndex–индекс перечисляемого значения.

lpValueName – указатель на буфер, в который поступает имя перечисляемого значения.

lpcbValueName – размербуфераlpValueName.

lpReserved – резерв.

lpType – указатель на значение типа DWORD, которое принимает тип данных, присущи перечисляемому значению.

lpData – указатель на буфер, в который поступает содержимое перечиляемого значения.

lpcbData – указатель на переменную, которая содержит число байт в буфере lpData.

Возвращаемое значение: если ключ создан или открыт удачно, то значение ERROR_SUCCESS. Любое другое значение является свидетельством того, что при создании или открытии ключа встретилась ошибка.

Если возвращается значение ERROR_NO_MORE_VALUES, то это означает, что подключей у данного ключа больше нет.

Порядок использования этой функции полностью совпадает с порядком использования функции RegEnumKeyEx(), поэтому стану на нем останавливаться. Опишу только аргументы этой функции.

Понятно, что hKey - это хэндл ключа, которому принадлежит подключ, индекс которого представлен вторым аргументом - dwlndex.

Следующий аргумент – указатель на буфер, в который будет записано имя подключа. lpcbValueName определяет размер этого буфера. Аргумент lpReserved зарезервирован и должен быть равным NULL. Последние три аргумента определяют класс подключа, указатель на буфер, в который будут записаны эти данные и размер буфера. После возврата функции предпоследний аргумент содержит число записанных данных.

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

К-во Просмотров: 182
Бесплатно скачать Реферат: Функции управления реестром Windows