Идёт загрузка страницы...

htp://aptem.net.ru






На главную страничку учебника Visual Basic

Работа с реестром

Работа с реестром - это одна из наиболее частых проблем, возникающих у программиста не только на Visual Basic, но и на других языках. В стандартных функциях Visual Basic нет функций для работы с реестром, но с помощью Windows API это можно устроить. Приведённые ниже примеры используют модуль registry.bas, который содержит объявления API ф-ций, констант и готовых процедур, с которыми очень удобно работать. Модуль registry.bas можно скачать.


Ф-ции чтения:


Для чтения строкового параметра используйте ф-цию GetRegString

Пример:

Dim a As String
a = GetRegString(HKEY_LOCAL_MACHINE, _
"Software\Microsoft\DirectX", "Version")
Form1.Caption = a

Для чтения параметра DWORD используйте ф-цию GetRegDWord

Пример:

Dim a As Long
a = GetRegDWord(HKEY_LOCAL_MACHINE, _
"Software\Microsoft\Internet Explorer\AboutURLs", "Home")
Form1.Caption = a

Для получения списка ключей в ключе используйте GetRegKeys

Пример:

Например, вам необходимо получить список ключей в подключе Software. Ф-ция GetRegKeys - возвращает значение типа Variant, содержащее одномерный массив со списком ключей. Поместите на форму список и введите примерно такой код:

Dim a As Variant
Dim c As Long
a = GetRegKeys(HKEY_LOCAL_MACHINE, "Software")
For c = 0 To UBound(a)
List1.AddItem a(c)
Next c

Для получения списка параметров в ключе используйте GetRegKeyValues

Пример:

Эта ф-ция как и предыдущая возвращает Variant - массив, но на этот раз 2-х мерный:

Dim a As Variant
Dim c As Long
a = GetRegKeyValues(HKEY_LOCAL_MACHINE, _
"Software\Microsoft\Windows\CurrentVersion\Run")
For c = 1 To UBound(a)
List1.AddItem a(c, 0)
List1.AddItem a(c, 1)
List1.AddItem "" 'Добавляем отступ для удобства
Next c

Здесь в массиве вторая размерность всегда равна 1. Т.е. 0 - отвечает за список параметров, а 1 за список их значений. Ну в общем запустите пример и сами поймёте.


Ф-ции записи:


Для записи строкового параметра используется SetRegString

Пример:

SetRegString HKEY_LOCAL_MACHINE, _
"Software\XYZ", "MyProgram", "Options"

Если ключ или параметр не были созданы, то они будут созданы. Если ключ или параметр уже существуют, то новые значения запишутся поверх старых.

Для записи параметра типа DWORD используется SetRegDWord

Пример:

SetRegDWord HKEY_LOCAL_MACHINE, _
"Software\XYZ", "MyProgram", "444"


Ф-ции удаления:


Для удаления ключа из реестра используется ф-ция DeleteRegKey

Пример:

DeleteRegKey HKEY_LOCAL_MACHINE, "Software", "XYZ", True

Второй параметр - Ключ-родитель

Третий параметр - True - если требуется подтверждение на удаление или False - если подтверждение не требуется.

Для удаления параметра из реестра используется ф-ция DeleteRegValue

Пример:

DeleteRegValue HKEY_LOCAL_MACHINE,_
"Software\Microsoft\Internet Explorer\AboutURLs", "mozilla", False

Желаю приятной работы с реестром Windows! :)

На главную страничку учебника Visual Basic