Открытие разделов реестра
октября 12 2009 by admin in АдминистрированиеПрежде чем сохранять или считывать информацию из реестра, нужно получить описатель раздела реестра. Эту операцию можно выполнить двумя способами: открыть или создать раздел. Открыть существующий раздел реестра позволяет функция RegOpenKeyEx, объявленная так:
LONG RegOpenKeyEx( HKEY hkeyRoot, PCTSTR pszSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
Получить описатель раздела реестра позволяет и функция RegOpenKey. Однако если существует £х-версия функции для работы с реестром, надо всегда использовать только ее.
Чтобы открыть подраздел, в качестве параметра hkeyRoot надо указать описатель корневого раздела. Этот описатель должен быть либо непосредственным родителем открываемого подраздела, либо его более далеким предком. В параметр hkeyRoot можно передавать и значения предопределенных корневых разделов. Обычно приложение осуществляет минимум один вызов функции RegOpenKeyEx, передавая в нее hkeyRoot, установленный в HKEY_LO-CAL_MACHINE или HKEY_CURRENT_USER.
Параметр pszSubKey содержит текстовое название открываемого раздела. В это название должны входить все разделы между открываемым и корневым, разделенные символом обратной косой черты. Например, если надо получить описатель с доступом для чтения к разделу HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows, вызов RegOpenKeyEx будет выглядеть так:
HKEY hkeyWindows;
LONG IRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE,
TEXT("Software\\Microsoft\\Windows"), NULL, KEY_READ, &hkeyWindows);
Если вы открываете подраздел, следующий за корневым, то включать в параметр pszSubKey названия разделов-предков не нужно — достаточно названия открываемого подраздела. Если в качестве параметра pszSubKey передана пустая строка или NULL, система вернет новый описатель заданного корневого раздела. Используйте NULL для получения описателя с безопасным доступом, отличающегося от оригинального описателя корневого раздела.