Создаем простое приложение на основе формы. Добавляем класс, с помощью которого мы будем иметь доступ к реестру.
Почему нужно создавать класс. Во первых к реестру можно получить доступ объявив стандартные функции 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