Функция RegWrite

 ↑  ←  Описание функции


RegWrite

Создает раздел или параметр в реестре.

RegWrite ( "keyname" [, "valuename" , "type" , value ] )

Параметры

keyname Создаваемый раздел/параметр. Если другие параметры не указаны, то будет создан раздел.
valuename [необязательный] Создаваемый параметр.
type [необязательный] Тип создаваемого параметра: "REG_SZ", "REG_MULTI_SZ", "REG_EXPAND_SZ", "REG_DWORD", "REG_QWORD" или "REG_BINARY".
value [необязательный] Значение для создаваемого параметра.

Возвращаемое значение

Успех:Возвращает 1.
Ошибка:Возвращает 0, если произошла ошибка создания раздела или параметра.
@error может получить следующие значения:
1 - Не удалось открыть указанный раздел
2 - Не удалось открыть указанный основной раздел
3 - Не удалось подключиться к удаленному реестру
-1 - Не удалось открыть указанный параметр
-2 - Тип параметра не поддерживается

Примечания

AutoIt поддерживает 5 типов параметров.
Тип данных в реестреВозвращаемый типОписание
1REG_SZСтроковыйЛюбой символ включая управляющие и юникод (кроме NULL)
2REG_EXPAND_SZСтроковыйТекстовые данные содержащие переменные типа %Temp%
3REG_BINARYБинарныйБинарный тип данных
4REG_DWORDDouble, Int64, 32 битаЦелые числа от 0 до 4294967295 (0xFFFFFFFF), часто используется как флаг 1 или 0, цвет
7REG_MULTI_SZСтроковыйМногострочный текст

Параметр keyname должен начинаться с "HKEY_LOCAL_MACHINE" ("HKLM"), "HKEY_USERS" ("HKU"), "HKEY_CURRENT_USER" ("HKCU"), "HKEY_CLASSES_ROOT" ("HKCR") или "HKEY_CURRENT_CONFIG" ("HKCC").

При работе в 64-битной Windows, если вы хотите создать раздел или параметр в 64-битной среде, вы должны указать суффикс HK ... с 64, например, HKLM64.

Для доступа к параметру (По умолчанию) используйте "" (пустую строку) в параметре valuename.

При создании параметра типа REG_MULTI_SZ необходимо разделять многострочные данные символом @LF. Значение НЕ должно заканчиваться символом @LF, если вы не хотите получить пустую строку в конце значения (см. пример).

Возможен также доступ к удалённому реестру при использовании имени раздела в виде \\computername\keyname. Для использования этой возможности нужны соответствующие права доступа.

См. также

RegDelete, RegRead, RegEnumKey, RegEnumVal

Пример

; Записывает в реестр единственное значение REG_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey", "REG_SZ", "Приветствую")

; Записывает в реестр значение "строка1" и "строка2", тип REG_MULTI_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey1", "REG_MULTI_SZ", "строка1" & @LF & "строка2")

; Записывает в реестр значение "строка1", тип REG_MULTI_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey2", "REG_MULTI_SZ", "строка1")

; с добавлением переноса строки
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey3", "REG_MULTI_SZ", "строка1" & @LF & "строка2" & @LF)
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey4", "REG_MULTI_SZ", "строка1" & @LF & @LF & "строка2" & @LF)

; Создаёт пустое значение REG_MULTI_SZ
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey5", "REG_MULTI_SZ", "")

; Создаёт параметр с бинарными данными
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey6", "REG_BINARY", StringToBinary("Hello"))

; Создаёт параметр с целым числом
RegWrite("HKEY_CURRENT_USER\Software\Test", "TestKey7", "REG_DWORD", 17)

; Создаёт раздел
RegWrite("HKEY_CURRENT_USER\Software\Test\Test1")

; Открывает реестр для просмотра
RegWrite("HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\Regedit", "LastKey", "REG_SZ", "HKEY_CURRENT_USER\Software\Test")
RunWait('regedit.exe')
; Удаляет созданный тестовый раздел
RegDelete("HKEY_CURRENT_USER\Software\Test")