'~~~~~~.GetString Функция Public Function GetString( _ ByVal HomeKey As HKEY_CONSTANTS, _ ByVal KeyName As String, _ ByVal ValueName As String) As String 'Handle раздела реестра Dim hkey As Long 'переменная для хранения значения Dim sData As String 'Результат работы API функций Dim lres As Long 'Тип возвращаемого значения Dim lDataType As Long 'переменная для хранения длины строки Dim lDlen As Long 'Открываем Раздел lres = RegOpenKey(HomeKey, KeyName, hkey) 'Если вернулся не ноль - ошибка, выходим If lres <> 0 Then GetRegString = vbNullString: Exit Function 'Продолжаем, заполняем строку пробелами. sData = String$(64, 32) & Chr$(0) lDlen = Len(sData) 'Читаем значение lres = RegQueryValueExS(hkey, ValueName, 0, lDataType, sData, lDlen) 'опять проверка на ошибку If lres <> 0 Then GetRegString = vbNullString: Exit Function 'проверяем тип полученных данных If lDataType = REG_SZ Then GetString = Left$(sData, lDlen - 1) Else GetString = vbNullString End If 'и закрываем раздел lres = RegCloseKey(hkey) End Function '~~~~~.SaveString Метод Public Sub SaveString( _ ByVal HomeKey As HKEY_CONSTANTS, _ ByVal KeyName As String, _ ByVal ValueName As String, _ ByVal Data As String) 'Handle для корневого раздела Dim hkey As Long 'Handle для изменяемого раздела Dim hSubKey As Long 'Результат работы функции Dim lres As Long 'Открываем корневой раздел lres = RegOpenKey(HomeKey, vbNullString, hkey) 'Создаём(если есть открываем) нужный раздел lres = RegCreateKey(HomeKey, KeyName, hSubKey) 'Пишем данные lres = RegSetValueExS(hSubKey, ValueName, 0, _ REG_SZ, Data + Chr$(0), Len(Data) + 1) 'и закрываем всё открытое lres = RegCloseKey(hSubKey) lres = RegCloseKey(hkey) End Sub