к ключу. Должна быть уникальной
Класс
последней записи
Рис. 9
Ключ
HKEY_CLASSES_ROOT
содержит те же данные, что и файл REG.DAT в Windows
3.1, — сведения о встраивании и связывании объектов (Object Linking and Embedding, OLE) и ассоциации файлов с приложениями, которые позволяют Windows запускать приложение, соответствующее выбранному файлу.
Ключ HKEY_LOCAL_MACHINE
содержит спецификации рабочей станции, драйверов и другие системные настройки, включая информацию о типах установленного оборудования, настройках портов, конфигурации программного обеспечения и т.п. Эта информация специфична для компьютера, а не для пользователя.
Ключ HKEY_CURRENT_CONFIG содержит информацию о текущей конфигурации аппаратуры компьютера и используется в основном на компьютерах с несколькими аппаратными конфигурациями, например при подключении портативного компьютера к стыковочной станции и отключении от нее. Информация, содержащаяся в этом ключе, копируется из ключа
HKEY_LOCAL_MACHINE.
Ключ HKEY.USERS
содержит информацию обо всех пользователях данной рабочей станции. Здесь хранятся данные о каждом пользователе, а также типовые настройки, служащие шаблоном для новых ключей, создаваемых пользователем. Типовые настройки включают различные значения по умолчанию для программ, схем событий, конфигураций рабочего стола и т.п.
Ключ HKEY_CURRENT_USER содержит настройки системы и программ, относящиеся к текущему пользователю. Он создается при регистрации пользователя в системе на основе информации из соответствующего раздела ключа HKEY_USERS. Именно здесь хранятся сведения о том, как данный пользователь сконфигурировал рабочую станцию — например, данные том, что каждый старт системы должен сопровождаться звуковым эффектом. Прочая информация может включать цветовые схемы, ярлыки, состояние рабочего стола и т.п.
Ключ HKEY_DYN_DATA
содержит динамическую информацию о состоянии различных устройств, причем она создается заново при каждом старте системы. Ключ HKEY_DYN_DATA используется как часть системы измерения производительности и для конфигурации устройств Plug-and-Play. Информация, содержащаяся здесь, меняется при добавлении новых устройств и удалении существующих. Для каждого устройства это данные о соответствующем аппаратном ключе, известных проблемах и текущем состоянии устройства. Ключ
HKEY_DYN_DATA также содержит сведения о состоянии системы, формируемые с помощью утилиты System Monitor. Это ключ не входит в состав файлов реестра и всегда создается динамически.
1.13.3 Модификация реестра Windows
Работать с приложением гораздо приятнее, если при каждом запуске оно сохраняет информацию о действиях и предпочтениях пользователя. Эти данные можно применять и далее — например, сохранить имя последней базы данных, открытой пользователем, и указать его в качестве имени по умолчанию, когда пользователь обратится к базе данных в следующий раз.
Для сохранения параметров приложения в реестре применяются операторы Visual Basic SaveSetting и GetSetting и соответствующие функции API Windows. Они имеют следующий синтаксис:
SaveSetting (приложение, раздел, ключ, параметр) GetSetting (приложение, раздел, ключ, [по умолчанию])
Рис. 10 |
Пример: В приведенном ниже коде с помощью оператора SaveSetting создаются элементы реестра для приложения, заданного в аргументе приложение (рис. 10), а затем применяется оператор GetSetting для получения значений параметров. |
'Поместить настройки в реестр
Private Sub Form_Load()
Me.Move GetSetting("MyApp", "FormSettings", "Left", 0), _
GetSetting("MyApp", "FormSettings", "Top", 0), _
GetSetting("MyApp", "FormSettings", "Width", 5000), _
GetSetting("MyApp", "FormSettings", "Height", 4000)
Me.Text1.Text = GetSetting("MyApp", "FormSettings", "txtValue")
End Sub
' Использовать настройки из реестра для сохранения свойств
'выгружаемой формы
Private Sub Form_Unload(Cancel As Integer)
SaveSetting "MyApp", "FormSettings", "Left", Me.Left
SaveSetting "MyApp", "FormSettings", "Top", Me.Top
SaveSetting "MyApp", "FormSettings", "Width", Me.Width
SaveSetting "MyApp", "FormSettings", "Height", Me.Height
SaveSetting "MyApp", "FormSettings", "txtValue", Me.Text1.Text
End Sub