Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal lpReserved As Long, _ lpType As Long, lpData As Any, _ lpcbData As Long) As Long
RegQueryValueEx получает значение параметра из раздела реестра. Это может быть число, строка и другие типы данных. При чтении строковых типов данных используйте ключевое слово ByVal перед lpData, для других типов данных ByVal использовать необязательно
В случае успеха функция возвращает 0, в случае ошибки возвращается код ошибки
' Создаем раздел HKEY_CURRENT_USER\Software\Russian_Project\Samples\Config ' Затем читаем значение параметра "username" Dim hregkey As Long ' получаемый описатель к созданному или открытому разделу Dim secattr As SECURITY_ATTRIBUTES Dim subkey As String ' название подраздела Dim neworused As Long ' Получим 1, если новый раздел был создан или 2, если существующий раздел был открыт Dim stringbuffer As String ' строка, полученная из реестра Dim slength As Long ' длина возвращаемого значения параметра Dim retval As Long ' возвращаемое значение subkey = "Software\Russian_Project\Samples\Config" secattr.nLength = Len(secattr) ' размер структуры secattr.lpSecurityDescriptor = 0 ' уровень безопасности по умолчанию secattr.bInheritHandle = True ' значение по умолчанию для этой установки ' Создаем или открываем раздел retval = RegCreateKeyEx(HKEY_CURRENT_USER, subkey, 0, "", 0, KEY_READ, secattr, hregkey, neworused) If retval <> 0 Then Debug.Print "Ошибка при открытии или создания раздела реестра - выходим из программы" End ' завершаем программу End If ' Получаем значение параметра "username". Используем ' при этом ключевое слово ByVal stringbuffer = Space(255) ' создаем буфер для получения информации slength = 255 retval = RegQueryValueEx(hregkey, "username", 0, REG_SZ, ByVal stringbuffer, slength) ' получаем значение параметра stringbuffer = Left(stringbuffer, slength) ' извлекаем значение из буфера If retval = 0 Then Debug.Print "Имя пользователя: "; stringbuffer ' Закрываем раздел реестра retval = RegCloseKey(hregkey)