Declare Function RegSetValueEx Lib "advapi32" Alias "RegSetValueExA" ( _ ByVal hKey As Long, _ ByVal lpValueName As String, _ ByVal Reserved As Long, _ ByVal dwType As Long, _ lpData As Any, _ ByVal cbData As Long) As Long
RegSetValueEx создает параметр в разделе реестра. Если параметр не существует, то он будет создан. Параметр может быть любым допустимым типом данных реестра. Если вы устанавливаете строковые или числовые значения, то используйте ключевое слово ByVal перед параметром lpData. Остальные значения (например, байтовые) не нуждаются в этом слове.
В случае успеха функция возвращает 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 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_WRITE, secattr, hregkey, neworused) If retval <> 0 Then Debug.Print "Ошибка при открытии или создания раздела реестра - выходим из программы" End ' завершаем программу End If ' Записываем строковой параметр в реестр stringbuffer = "Александр" & vbNullChar ' обратите внимание на добавляемый нулевой символ retval = RegSetValueEx(hregkey, "username", 0, REG_SZ, ByVal stringbuffer, Len(stringbuffer)) ' Закрываем раздел реестра retval = RegCloseKey(hregkey)
RegDeleteValue, RegQueryValueEx