У подключа .Default имеются два подключа, которые следуют после подключа Your App — Report Name и Data Base.Ниже подключа User X следует только подключ Data Base. Когда в подключе User X указывается текущий пользователь, приложение обнаружит параметр настройки в подключе Data Base, но не в подключе Report Name. Приложение может всегда соблюдать это правило, считывая выбранные пользователем глобальные параметры из подключа приложения, который содержится в ключе программного обеспечения текущего пользователя, и если они не будут обнаружены, тогда поиск глобальных параметров осуществляется в аналогичном месте для пользователя, зарегистрированного в подключе .Default.Описание функций системного реестра
В табл. 19.2 сведены все функции системного реестра, а их описание следует непосредственно после таблицы.На рис. 19.3 показаны элементы системного реестра для ключа документа WordPad, порожденного ключом HKEY_CLASSES_ROOT. У него имеются следующие пять под-ключей: CLSID, Defaultlcon, Insertable, Protocol и Shell. Значение подключа CLSIDпредставляет собой идентификатор класса OLE 2.O. Значением подключа Defaultlcon является имя библиотеки пиктограмм и индекс, по которому находится данная пиктограмма. Эта информация будет использоваться командным процессором для отображения документов WordPad. Подключи Insertable и Protocol также имеют
Функиия |
Назначение |
||||||
RegCreateKeyEx |
Создает новый подключ |
||||||
RegDeleteKey |
Удаляет ключ из системного реестра |
||||||
RegDeleteValue |
Удаляет значение из системного реестра |
||||||
RegDisablePredefinedCache |
Отключает таблицу предопределенных дескрипторов системного реестра в ключе HKEY CURRENT_USER для текущего процесса |
||||||
RegEnumKeyEx |
Перечисляет все подключи данного ключа |
||||||
RegEnumValue |
Перечисляет все значения данного ключа |
||||||
RegFlushKey |
Сразу же записывает все изменения, произведенные в системном реестре |
||||||
RegLoadKey |
Загружает раздел в корневой ключ, находящийся на вершине иерархии |
||||||
RegNotifyChangeKeyValue |
Указывает на момент изменения ключа или значения в системном реестре |
||||||
RegOpenCurrentUser |
Открывает ключ HKEY_CURRENT_USER для пользователя текущей нити |
||||||
RegOpenKeyEx |
Открывает существующий ключ системного реестра с расширениями Win32 |
||||||
RegOverridePredefKey |
Переопределяет предопределенный ключ системного реестра в соответствии с указанным ключом системного реестра |
||||||
RegQuerylnfoKey |
Возвращает информацию о ключе |
||||||
RegQueryMuttiple Values |
Выбирает тип и данные для списка имен значений |
||||||
RegQueryValueEx |
Возвращает значение (с расширенными типами данных Win32) |
||||||
RegReplaceKey |
Заменяет ключ содержимым файла при перезапуске системы |
||||||
RegRestoreKey |
Считывает содержимое раздела в ранее сохраненный ключ |
||||||
RegSaveKey |
Сохраняет значения и подключи данного ключа в файле улья |
||||||
RegSetValueEx |
Присваивает ключу значение (с новыми типами данных) |
||||||
RegUnLoadKey |
Удаляет раздел из системного реестра |
||||||
RegCloseKey • Windows 98 • Windows 2000 |
|||||||
Описание |
Функция RegCloseKey закрывает дескриптор данного открытого ключа. При этом освобождаются любые связанные с данным ключом системные ресурсы. Закрытие ключа отнюдь не вызывает задержку операций записи, происходящих непосредственно после выполнения данной функции. |
||||||
Синтаксис |
LONG RegCloseKey (Hkey hKey) |
||||||
Параметры |
|||||||
hKey |
HKEY: Дескриптор закрываемого ключа. |
||||||
Возвращаемое значение |
LONG: Если выполнение функции оказывается успешным, возвращается значение ERROR_SUCCESS. В противном случае вызывающей программе возвращается код ошибки. Функция не может быть выполнена в том случае, если ключ является недействительным либо не может быть открыт. |
||||||
Включаемый файл |
winreg.h |
||||||
См. также |
RegOpenKeyEx, RegFlushKey. |
||||||
Пример |
См. пример применения функции RegCreateKeyEx. |
||||||
RegConneetRegistry • Windows 98 • Windows 2000 |
|||||||
Описание |
Функция RegConneetRegistry устанавливает соединение с предопределенным дескриптором системного реестра, который находится на другом компьютере. Когда этот дескриптор уже не требуется, приложения должно закрыть его, вызвав функцию RegCloseKey. |
||||||
Синтаксис |
LONG RegConneetRegistry (LPCTSTR IpMachineName, HKEY hKey, PHKEY phkResult) |
||||||
Параметры |
|||||||
IpMachineName |
LPCTSTR: Указатель на строку, завершающуюся пустым символом и содержащую имя удаленного компьютера. Эта строка должна быть приведена в виде \\coraputername. Если для этого параметра установлено значение NULL, используется имя локального компьютера. |
||||||
НКеу |
HKEY: Предопределенный дескриптор системного реестра, находящегося на удаленном компьютере. При этом нельзя использовать ключи HKEY_CLASSES_ROOTn HKEY_CURRENT_USER |
||||||
PhkResult |
PHKEY: Указатель на переменную HKEY, которой присваивается дескриптор ключа, обозначающий предопределенный дескриптор на удаленном компьютере. |
||||||
Возвращаемое значение |
LONG: Если выполнение функции оказывается успешным, возвращается значение ERROR_SUCCESS. В противном случае возвращается значение ошибки. |
||||||
Включаемый файл |
winreg.h |
||||||
См. также |
RegCloseKey. |
||||||
Пример |
В приведенном ниже фрагменте кода показано, каким образом функция RegConnectRegistry используется для соединения с другим компьютером. |
||||||
HKEY ConnectToRemote ( LPTSTR IpComputerName , HKEY hKey ) HKEY hRemoteKey ; if (RegConneetRegistry (IpComputerName, hKey, ShRemoteKey ) = ERROR_SUCCESS ) return ( hRemoteKey ) ; MessageBox( NULL, "Could not connect to remote computer", NULL, MBJDK | MB_ICONSTOP ) ; return ( NULL ) ; |
|||||||
RegCreateKeyEx • Windows 98 * Windows 2000 |
|||||||
Описание |
Функция RegCreateKeyEx создает или открывает подключ указанного ключа. |
||||||
Синтаксис |
LONG RegCreateKeyEx(HKEY hkey, LPCTSTR IpszSubKey, DWORD dwReserved, LPTSTR IpszClass, DWORD dwOptions, REGSAM samDesired, LPSECURITY_ATTRIBUTES IpSecurityAttributes, PHKEY phkResult, LPDWORD IpdwDisposition) |
||||||
Параметры hkey |
HKEY: Ключ, под которым предполагается создать новый подключ. Это может быть открытый ключ или один из следующих предопределенных корневых ключей верхнего уровня: HKEY_CURRENT_CONFIG, HKEY_CURRENT_USER, HKEY_USERS, HKEY_LOCAL_MACHINE, HKEY_CLASSES_ROOT, HKEY_PERFORMANCE DATA (Windows 2000) или HKEY_DYN_DATA (Windows 98). |
||||||
IpszSebKey |
LPCTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую имя нового подключа. Если такой подключ уже существует, он открывается. Указанное имя подключа не должно начинаться с символа обратной косой черты('\'). В противном случае возвращается значение ERROR_BAD_PATHNAME. |
||||||
dwReserved |
DWORD: Это значение следует установить равным 0. |
||||||
Ipsz Class |
LPTSTR: Указатель на строку, завершающуюся нулевым символом и содержащую наименование класса данного ключа. Если такой подключ уже существует, параметр игнорируется. |
||||||
dwOptions |
DWORD: Этот параметр определяет специальные опции для хранения данных, связанных с ключом. Возможные значения этого параметра перечислены в табл. 19.3. |
||||||
Таблица 19.3 Значения параметра dwOptions функции RegCreateKeyEx |
|||||||
Олиии хранения ланных в ключе системного реестра |
Значение |
||||||
REG_OPTION_BACKUP_RESTOR |
(Windows NT/2000) Параметр samDes/'red игнорируется, а ключ открывается с доступом, необходимым для резервного копирования или восстановления ключа. Если в вызывающей .,-. нити разрешены привилегии SE_BACKUP_NAME, тогда ключ открывается с доступом ACCESS_SYSTEM_SECURITY и KEY_READ. А если в вызывающей нити разрешены привилегии SE RESTORE NAME, тогда ключ открывается с доступом ACCESS_SYSTEM_SECURITY и KEY_WRITE |
||||||
REG_OPT_N_WOM_VOLAnLE |
В этом случае данные не являются временными, но сохраняются на диске. При перезапуске системы ключи не теряются. А ключи, которые не являются временными, сохраняются с помощью функции RegSaveKey |
||||||
REG_OPTION_VOLATILE |
В этом случае (только в Windows NT/2000) данные хранятся в памяти и не записываются на диск. При закрытии системы временные ключи теряются. Кроме того, временные ключи не сохраняются с помощью функции RegSaveKey. Это значение игнорируется в Windows 98, где создаются постоянные ключи и возвращается значение ERROR_SUCCESS |
||||||
samDesired |
REGSAM: Доступ к ключу с требуемым уровнем защиты. При этом можно использовать сочетание значений, перечисленных в табл. 19.4. |
||||||
IpSecurityAttributes LPSECURITY_ATTRIBUTES: Атрибуты защиты ключа. Установленное значение NULL для этого параметра указывает на используемые по умолчанию атрибуты защиты, которые не допускают наследование дескрипторов ключей одного процесса в другом процессе. Чтобы разрешить наследование дескрипторов ключей, потребуется установить значение TRUE элемента blnheritHandle структуры. В Windows 9x этот параметр игнорируется. |
|||||||
Таблица 19.4 Опции доступа к ключу |
|||||||
Опчия доступа к ключу |
Права доступа |
||||||
KEY_ALL_ACCESS |
Допускает определенное сочетание опций KEY QUERY VALUE, KEY ENUMERATE SUBKEYS, KEY NOTIFY, KEY_CREATE_SUBKEY, KEY_CREATE_LINK и KEY_SET_VALUE |
||||||
KEY_CREATE_LWK |
Допускает создание символических связей с другими подключами |
||||||
KEY_CREATE_SUBKEY |
Допускает создание подключай |
||||||
KEY ENUMERATE SUBKEYS |
Допускает перечисление подключей |
||||||
KEY_EXECUTE |
Допускает чтение ключа |
||||||
KEY_NOTIFY |
Разрешает уведомление об изменении ключа |
||||||
KEY_QUERY_VALUE |
Допускает запрос значений подключей |
||||||
KEY_READ |
Допускает определенное сочетание опций KEY QUERY VALUE, KEY_ENUMERATE_SUBKEYS и KEY_NOTH=Y |
||||||
KEY_SET_VALUE |
Допускает запись значений подключей |
||||||
KEY_WRITE |
Допускает сочетание опций KEY SET VALUE и KEY_CREATE_SUBKEY |
||||||
phkResult |
PHKEY: Указатель на переменную HKEY, которой присваивается дескриптор нового подключа. |
||||||
Ipdw Disposition |
LPDWORD: Указатель на переменную типа DWORD, которой присваивается значение состояния подключа, указывающее на то, что подключ был создан (REG_CREATED_NEW_KEY) либо же был открыт существующий подключ (REG_OPENED_EXISTING_KEY) . |
||||||
Возвращаемое значение |
LONG: Если выполнение функции оказывается успешным, возвращается значение ERROR_SUCCESS, в противном случае — код ошибки. |
||||||
Включаемый файл |
winreg.h |
||||||
См. также |
RegDeleteKey |
||||||
Пример |
После выбора пользователем в приведенном ниже примере пункта меню Register! создаются следующие три элемента системного реестра: первые два — для типа документа MyDoc с командой командного процессора и используемой по умолчанию пиктограммой и третий — для расширения .MDC. При этом расширение имени файла связывается с типом документа и командой Test командного процессора. После выполнения данного примера следует воспользоваться проводником Explorer и щелкнуть правой кнопкой мыши на файле с расширением .MDC, чтобы таким образом появилось контекстное меню. В результате выполнения команды Test файл MyDoc загружается в Note Pad. Состояние системного реестра после выполнения данного примера можно оценить на основании рис. 19. 5. А на рис. 19.6 показано контекстное меню для файлов с расширением .MDC. Когда пользователь выбирает пункт меню Un- Register!, указанные выше ключи из системного реестра удаляются. |
||||||
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.