Шаг 124 - Создаем программу работающую с реестром

Создаем простое приложение на основе формы. Добавляем класс, с помощью которого мы будем иметь доступ к реестру.

gif/124_1.gif (2142 b)

Почему нужно создавать класс. Во первых к реестру можно получить доступ объявив стандартные функции Win32 API. Например, вот эту.

Private Declare Function RegEnumKeyEx Lib "advapi32.dll" Alias "RegEnumKeyExA" _
	(ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, _
	lpcbName As Long, ByVal lpReserved As Long, ByVal lpClass As Long, _
	ByVal lpcbClass As Long, lpftLastWriteTime As FileTime) As Long

Такой функции нет в стандартной реализации. При желании мы ее просто добавим в класс и все. Функции по типу будут собраны в одном классе что позволит использовать этот класс в другом проекте. И последнее, в любой момент при необходимости внутри класса функцию GetSetting можно будет заменить в проекте, например на:

Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" _
	(ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, _
	ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long

Это нужно будет сделать всего в одном месте в классе. То есть, создавая класс мы декламирует методы скрывая их реализацию внутри класса. Есть еще один момент. Из класса легко создать ActiveX DLL и тогда другие Ваши программы будут пользоваться этим ActiveX и Вы сможете просто менять DLL если вдруг найдется ошибка. В общем преимуществ девать некуда. Старайтесь все помещать в классы.

Первое это я создал свойства класса.

Private mvarAppName As String 
Private mvarSection As String 
Private mvarKey As String 
Private mvarSetting As String 

Public Property Let Setting(ByVal vData As String)
	mvarSetting = vData
End Property

Public Property Get Setting() As String
	Setting = mvarSetting
End Property

Public Property Let Key(ByVal vData As String)
	mvarKey = vData
End Property

Public Property Get Key() As String
    Key = mvarKey
End Property

Public Property Let Section(ByVal vData As String)
mvarSection = vData
End Property

Public Property Get Section() As String
Section = mvarSection
End Property

Public Property Let AppName(ByVal vData As String)
    mvarAppName = vData
End Property

Public Property Get AppName() As String
    AppName = mvarAppName
End Property

Для того, чтобы можно было установить сразу имя приложения, раздел и ключ. Теперь достаточно два метода RestoreSettings и SaveSettings.

Public Sub SaveSettings()
	SaveSetting mvarAppName, mvarSection, mvarKey, mvarSetting
End Sub

Public Sub RestoreSettings()
	mvarSetting = GetSetting(mvarAppName, mvarSection, mvarKey)
End Sub

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.