Реферат: Функции управления реестром Windows
Проблема. Дело в том, что данные из реестра на время работы с ними переписываются в кэш и записываются обратно на диск при выполнении функции RegFlushKey(). Чтобы данные, измененные во время работы программы, не были потеряны, то перед закрытием ключа следует их сбрасывать на диск. С другой стороны, у программиста может появиться соблазн сбрасывать данные на диск достаточно часто. Так как RegFlushKey() использует огромное количество системных ресурсов, то эту функцию нужно вызывать только в том случае, когда действительно в этом есть необходимость. Синтаксис функции следующий:
LONGRegFlushKey(HKEYhKey)
Параметры:
hKey – хэндл ключа, содержимое которого должно быть сброшено на диск.
Возвращаемое значение: если ключ создан или открыт удачно, то значение ERROR_SUCCESS. Любое другое значение является ошибкой.
3. Добавление данных к ключам и удаление данных из ключей
После того, как ключ создан, возникает необходимость добавить к ключу некоторые данные, которые будут использоваться программой. Для этого нужно вызвать функцию RegSetValueEx(). Эта функция устанавливает именнованное значение любого подключа системного реестра. У данного подключа может быть множество именованных значений. Синтаксис функции следующий:
LONG RegSetValueEx (HKEY hKey, LPCSTR lpszValueName, DWORD dwReserved, DWORD dwDataType, CONST BYTE* lpData, DWORD dwByte)
Параметры:
hKey – хэндл ключа, к которому добавляются данные.
lpszValueName– указатель на строку, завершающуюся нулевым символом в конце и содержащую имя строки добавляемых данных.
Reserved – резерв.
dwDataType – тип сохраняемых данных, который задается идентификатором (табл.4).
lpData– укзатель на данные, которые будут сохраняться в выбранном значении. Объем данных, сохраняемых в системном реестре, ограничивается используемым объемом памяти. Поэтому большие значения должны хранится в файлах, а имена этих файлов следует хранить в системном реестре.
dwByte – длина сохраняемой строки данных за исключением завершающего строку нулевого символа.
Возвращаемое значение: если ключ создан или открыт удачно, то значение ERROR_SUCCESS. Любое другое значение является ошибкой.
Первый аргумент - хэндл ключа, к которому добавляются данные.
Второй аргумент - указатель на строку, содержащую имя добавляемых данных.
Третий аргумент зарезервирован.
Четвертый аргумент определяет тип информации, который будет сохранен в качестве данных.
Пятый аргумент является указателем непосредственно на данные, которые будут сохранены.
Шестой аргумент определяет размер данных, на которые указывает пятый аргумент. Все легко и просто, не так ли?
Различают два типа удаления:
- удаление подключа из реестра;
- удаление значений ключа реестра.
Удалить подключ из реестра можно с помощью функции RegDeleteKey(). В windowsNT/2000 эта функция не будет удалять подключи и не сможет быть выполнена при наличии подключей.
В Windows 9x подключи с ее помощью удаляются. Синтаксис функции следующий:
LONG RegDeleteKey (HKEY hKey, LPCSTR lpszSubKey)
Параметры: