Должен ли я прервать пустое значение REG_SZ с 0-байтом? Reg sz значение не присвоено что это


Типы данных реестра

Как уже говорилось ранее, в реестре хранится громадное количество информации, включающее профили всех пользователей, сведения об установленном программном обеспечении и типах документов, которые могут быть созданы каждой программой, информация о свойствах папок и значках приложений, а также установленном оборудовании и используемых портах.

Поскольку реестр Microsoft Windows представляет собой сложную реляционную базу данных, вся информация, которая может храниться в конечных информационных контейнерах этой базы (параметрах), должна быть строго классифицирована. Классификация хранящихся в параметрах значений производится по типу данных, представляющих это значение. Всего насчитывается 11 таких типов

Раздел и подраздел могут содержать 0, 1 или несколько параметров, параметр по умолчанию, а также 0 или несколько подразделов. Каждый параметр имеет имя, тип и значение.

Три части параметра реестра всегда располагаются в определенном порядке: Имя, Тип данных, значение (например: [RegistrySizeLimit] [REG_DWORD] [0x8000000]).

В таблице, которая будет приведена ниже, содержится список типов данных, определенных и используемых Windows на сегодняшний день.

Максимальная длина имени параметра:

  • 16 383 символов для Windows Server 2003, Windows XP и Windows Vista
  • 260 символов ANSI или 16 383 символа Юникод для Windows 2000
  • 255 символов для Windows 95, Windows 98 и Windows Millennium Edition

Значения большого размера (больше 2048 байт) хранятся во внешних файлах, а в реестр заносится имя такого файла. Это способствует повышению эффективности использования реестра.

Максимальный размер параметра:

  • Вся доступная память для Windows NT 4.0/Windows 2000/Windows XP/Windows Server 2003/Windows Vista
  • 16 300 байт для Windows 95, Windows 98 и Windows Millennium Edition
Наименование Тип данных Назначение
REG_BINARY Двоичный Двоичные данные
REG_DWORD Числовой Число
REG_QWORD Числовой 64-разрядное числовое значение
REG_EXPAND_SZ Строковый Текст и переменные
REG_FULL_RESOURCE_DESCRIPTOR Строковый Идентификатор ресурса устройства
REG_LINK Строковый Путь к файлу
REG_MULTI_SZ Многостроковый Массив строк
REG_NONE Неизвестный Зашифрованные данные
REG_RESOURCE_LIST Строковый Список ресурсов устройств
REG_RESOURCE_REQUIREMENTS_LIST Строковый Идентификатор ресурса устройства
REG_SZ Строковый Текст

Ниже приводится назначение этих параметров.

REG_BINARY

Необработанные двоичные данные. Большинство сведений об аппаратных компонентах хранится в виде двоичных данных и выводится в редакторе реестра в шестнадцатеричном формате.

REG_DWORD

Данные, представленные целым числом (4 байта, 32 бита). Многие параметры служб и драйверов устройств имеют этот тип и отображаются в двоичном, шестнадцатеричном или десятичном форматах. Эквивалентами типа DWORD являются DWORD_LITTLE_ENDIAN (самый младший байт хранится в памяти в первом числе) и REG_DWORD_BIG_ENDIAN (самый младший байт хранится в памяти в последнем числе).

REG_EXPAND_SZ

Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения.

REG_MULTI_SZ

Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют именно этот тип данных. Записи разделяются пробелами, запятыми или другими символами.

REG_SZ

Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных. Имеет фиксированную длину.

REG_LINK

Символическая ссылка в формате Юникод.

REG_FULL_RESOURCE_DESCRIPTOR

Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются физическим устройством. Обнаруженные данные система сохраняет в разделе \HardwareDescription. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате

REG_RESOURCE_LIST

Последовательность вложенных массивов. Служит для хранения списка ресурсов, которые используются драйвером устройства или управляемым им физическим устройством. Обнаруженные данные система сохраняет в разделе \ResourceMap. В окне редактора реестра эти данные отображаются в виде двоичного параметра в шестнадцатеричном формате

REG_RESOURCE_REQUIREMENTS_LIST

Последовательность вложенных массивов. Служит для хранения списка драйверов аппаратных ресурсов, которые могут быть использованы определенным драйвером устройства или управляемым им физическим устройством. Часть этого списка система записывает в раздел \ResourceMap. Данные определяются системой. В окне редактора реестра они отображаются в виде двоичного параметра в шестнадцатеричном формате

REG_QWORD

Данные, представленные в виде 64-разрядного целого. Начиная с Windows 2000, такие данные отображаются в окне редактора реестра в виде двоичного параметра

REG_NONE

Данные, не имеющие определенного типа. Такие данные записываются в реестр системой или приложением. В окне редактора реестра отображаются в виде двоичного параметра в шестнадцатеричном формате

www.chemtable.com

string - Должен ли я прервать пустое значение REG_SZ с 0-байтом?

Хотя правило заключается в использовании a) - из моего опыта, как a), так и b), действительно будет работать.

Используя такой инструмент, как RegScanner, вы можете искать все записи REG_SZ с длиной "от 0 байт до 1 байт".

При этом вы действительно увидите, что большинство записей имеют длину в 1 байт (т.е. Это пустые строки, завершенные нулем).

На моем компьютере имеется 75322 "пустых" записей REG_SZ, из них 74860 записей 1 байт.

Тем не менее, 462 записей имеют размер 0 байт, то есть они не заканчиваются на нуль, они просто....пущены, как и полностью пусты.

Большинство из этих записей "0 байт" относятся к нескольким программам.

Во-первых, вот некоторые сторонние программы, которые фактически создали записи REG_SZ (с именами), просто они ничего не содержат.

ACD Systems - ACDSee Pro 5, 169 записей:

[HKLM\SOFTWARE\Classes\.***\OpenWithProgids] "ACDSee Pro 5.***"=""

Disc Soft - Daemon Tools, 20 записей:

[HKLM\SOFTWARE\Wow6432Node\Disc Soft\DAEMON Tools Pro\FileTypesSave\.***] "Type"=""

PSP Audioware - PSP MultiInstaller, 105 записей:

[HKCU\Software\PSP-audioware\PSP_*] "CurrBank"="" "CurrDir"="" "CurrPreset"=""

Но в Windows 7 (по крайней мере, SP1) есть также несколько строк REG_SZ с нулевым завершением, однако это обычные (по умолчанию) пустые.

Microsoft - Windows 7 SP1 AppEvents\Схемы, 67 записей:

[HKCU\AppEvents\Schemes\Apps\.*\*\.None] @=""

А также те. Текущие, которые пусты, имеют следующие значения:

[HKCU\AppEvents\Schemes\Apps\.*\*\.Current] @=""

Все эти настройки реестра REG_SZ, не имеющие нулевого значения, похоже, работают.... Хотя это не так просто, чтобы проверить это, они пустые и все.... но по крайней мере, нет сообщений об ошибках из Windows или любая из программ, когда они проходят эти записи реестра.

qaru.site

Основы работы с реестром - синтаксис, структура reg-файла.

оглавление: Основы работы с реестром1)что такое реестр?2)ситаксис,структура,назначение элементов реестра.3)редактор реестра (regedit.exe)4)синтаксис,структура reg-файла.5)утилита reg.exe

синтаксис,структура reg-файла​

____________________что такое reg-файл?это файл,несущий в себе информацию,для взаимодействия с элементами реестра.

Как создать REG-файл?

Внимание!перед тем как что либо сделать,обязательно сделайте резервную копию реестра!!!

___________________________________________________

Как создать/восстановить резервную копию реестра Windows штатными средствами ОС Windows ?Резервное копирование и восстановление системного реестра с помощью стороннего ПОАвтоматическое создание резервной копии реестра___________________________________________________

О том,где находится сам реестр,из чего он состряпан и структуру его компонентов мы рассмотрели в этой статье.

Итак,самый распространенный инструмент для работы с реестром-это редактор реестра.- утилита regedit.

С его помощью мы можем выполнять все необходимые операции.Создание,изменение,сохранение,импорт,экспорт ,удаление и прочие операции с объектами системного реестра.

Попробуем?Давайте создадим собственную команду в контексном меню.Для этого откроем раздел

Код:

HKEY_CLASSES_ROOT\DesktopBackground\Shell далее правой кнопкой мыши-создать раздел.

создаем раздел под именем name.в нем еще один раздел-command.

В разделе name-создадим строковой параметр -reg_szи задаем ему любое значение-например

Код:

моя первая фигня... Моя больная фантазия захьела это имя,вы вольны выбрать свое... А в разделе command создаем аналогичный строковой параметр с именем выполняемой команды. Мне в голову взбрело regedit.exe В итоге мы получили при нажатии правой кнопкой мыши вот такую команду контексного меню: Нажимая мы вызываем редактор реестра...

Можно упростить себе задачу,воспользовавшись твиком реестра.

Да...Можно не ковыряться в редакторе реестра,а просто внести в реестр нужную информацию используя файл с расширением .reg

Как это выглядит на практике?

Если все описанные операции записать в reg-файл,то получим следующее:

Код:

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\DesktopBackground\Shell\name] @="моя первая фигня..." [HKEY_CLASSES_ROOT\DesktopBackground\Shell\name\command] @="regedit.exe" Для создания reg файла подойдет любой текстовый редактор. Я взял блокнот. Итак,создаем новый тестовый документ. В предыдущем примере мы добавляли новые параметры и разделы в реестр. Давайте теперь удалим их. Для этого в текстовом документе вводим:

Код:

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\DesktopBackground\Shell\name] @="моя первая фигня..."=- [-HKEY_CLASSES_ROOT\DesktopBackground\Shell\name\command] @="regedit.exe" Сохранить как-все файлы-имя с расширением .reg (например tweak.reg) По полученному файлу двойной клик,применить,ок. Заглянем в реестр-видим,что раздел command удален,а в разделе name удален параметр,который мы прежде создали. вот сейчас пора разобраться с синтаксисом.

1)

Код:

Windows Registry Editor Version 5.00 обязательная строчка-указывает версию редактора.

Версия_редактора_реестра — либо «Windows Registry Editor Version 5.00» для Windows 2000, Windows XP и Windows Server 2003, либо «REGEDIT4» (буквы обязательно заглавные) для Windows 98 и Windows NT 4.0. Заголовок REGEDIT4 можно также использовать на компьютерах с системой Windows 2000, Windows XP и Windows Server 2003.

2) Следующая строка должна быть пустой.

3)Далее идет указание пути к разделу.в нашем случае раздел-name

Код:

[HKEY_CLASSES_ROOT\DesktopBackground\Shell\name] Примечание: Если раздела не существует,то он будет создан. Если он есть-то в него будут добавлены параметры или изменения,содержащиеся в твике. Другими словами элемент будет перезаписан.

4)Имя параметра— это имя импортируемого параметра данных. Если элемент данных файла отсутствует в реестре, REG-файл добавляет его (со значением). Если элемент данных существует, значение в REG-файле переписывает существующее значение. Имя элемента данных заключается в кавычки. За именем элемента данных следует знак равенства (=).

5)Значение,тип параметра

  • REG_BINARY шестнадцатеричное
  • REG_DWORD dword
  • REG_EXPAND_SZ шестнадцатеричное
  • REG_MULTI_SZ шестнадцатеричное
Формат записи для их добавления несколько другой. Для параметров типа DWORD используется строка"Имя_параметра_данных"="dword:Значение_данных1" Здесь "Имя_параметра_данных" - имя параметра, dword - указывает на тип этого параметра (буквы должны быть обязательно маленькие!) и после двоеточия следует значение из восьми цифр в шестнадцатеричном (!) формате. Однако большинство параметров DWORD имеют значение либо 0, либо 1, значит, следует написать соответственно либо 00000000, либо 00000001 вместо значков ХХХХХХХХ. Пробелы в строке не допускаются.Для добавления двоичного параметра формат записи несколько иной:"Имя_параметра_данных"=hex:XX,XX,XX,....После знака "=" идет hex, т.е. указывается, что это будет двоичный параметр, затем идут шестнадцатеричные числа, отделенные запятой. Например, если необходимо добавить двоичный параметр равный "be 00 00 00", то следует писать строку"Имя_параметра_данных"=hex:be,00,00,00В реестре существуют параметры "По умолчанию" ("Default"). Чтобы присвоить им какое-то значение через reg-файл, надо добавить такую строку:@="Тип_данных:Значение_данных"Здесь значок @ показывает, чтоприсваивается значение параметра "По умолчанию". Он не заключается в кавычки.

Примечание 1: Можно ввести несколько строк элементов данных для одного пути реестра.После того, как создан такой файл, следует просто запустить его как обычную программу, будет выдан запрос о необходимости провести изменения в реестре, и после положительного ответа информация из файла будет импортирована. О результатах импортирования Windows сообщит в появившемся после этого окне.

Примечание 2: Windows 2000/XP обладает обратной совместимостью и может обрабатывать файлы, созданные в Windows 9x. Но если был экспортирован файл в Windows XP и перенесен на Windows 9x, то необходимо вручную изменить первую строчку на REGEDIT4.

Если мы создаем обычный строковой параметр-то его символ в твике мы видим как знак @.Попробуйте заключить этот знак в кавычки и он превратится в имя параметра.

Так.А что за минусы я поставил при создании твика?Если мы желаем удалить раздел то ставим минус перед значением адреса раздела.Если надо удалить параметр-ставим минус после знака равно за параметром.Все видно на примере.Однако в контексном меню у вас остался не рабочии пункт.Вот и попробуйте убрать его твиком.Кстати.Если вы захотите применить множество твиков,то замучаетесь нажимать ок.Тогда вы можете применить твик через командную строку используя команду regedit /s-она подавляет появление диалоговых окон.

Вот тут кстати пора говорить и об использовании командной строки.

А точнее - нам нужна утилита командной строки reg.exe.

Список доступных команд получим вбив в командной строке reg/?И аналогичным способом можно получить справку по каждой команде.Единственное, что тут стоит добавить-если при наборе команды дописать /у, то тогда не будет выводиться сообщение если такой файл на диске уже есть.Для того,что бы узнать как работать с реестром через командную строку или утилиту reg.exe тоЧитайте далее статью

Утилита командной строки reg.exe.

safezone.cc

Знакомство с реестром Windows

Реестр Windows (Windows Registry) – это центральная база данных настроек и параметров во всех операционных системах семейства Windows (начиная с Windows 3.1). В нем хранится вся информация об аппаратных средствах, операционной системе и установленных в ней приложениях, а также пользовательские данные и настройки. По аналогии с человеческой анатомией я бы назвал реестр центральной нервной системой компьютера, ведь от настроек реестра напрямую зависит поведение системы в той или иной ситуации.

Реестр не является единым целым, а представляет из себя составную структуру, динамически формирующуюся из различных данных следующим образом:

  • Сначала, при установке ОС, создаются файлы, хранящие данные о начальной конфигурации системы.
  • Затем, в процессе загрузки и входа пользователя в систему формируется некий виртуальный объект Registry. Данные для формирования он берет частично из тех самых файлов, частично из информации, собранной при загрузке Windows.

Этот объект и является тем самым реестром, с которым взаимодействует операционная система и который видим мы.

Основные файлы, отвечающие за формирование реестра

  • system
  • software
  • sam
  • security
  • default
  • components
  • bcd-template

Хранятся они в папке %SystemRoot%\System32\Config\ (обычно это C:\Windows\System32\Config\) и в зависимости от версии ОС их состав может несколько различаться.

 

Также файлы, отвечающие за пользовательские настройки, могут храниться в C:\Documents and Settings\%Username%\ (Ntuser.dat) и в C:\Documents and Settings\%Username%\Local Settings\Application Data\Microsoft\Windows\ (UsrClass.dat).

Еще есть резервные копии файлов реестра, созданные системой, хранятся они вC:\Windows\System32\config\RegBack — для  Windows 7 и Server 2008C:\Windows\repair— для XP и Server 2003По умолчанию операционная система делает резервные копии этих файлов раз в 10 дней с помощью планировщика задач.

Взаимодействие реестра с операционной системой

• При запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. Обычно распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы Ntoskrnl.exe

• При старте системы ядро системы  извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (напр. номер версии).

• В процессе загрузки системы драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Драйвер устройства сообщает об используемых им системных ресурсах, включая аппаратные прерывания (IRQ) и каналы доступа к памяти (DMA), чтобы система могла включить эти данные в реестр. Кстати, реестр позволяет создавать несколько аппаратных профилей. Аппаратный профиль (hardware profile) представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. По умолчанию системой создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере.

• При входе пользователя в систему загружаются пользовательские профили (user profiles). Вся информация, относящаяся к конкретному имени пользователя и связанными с ним правами хранится в реестре. Пользовательский профиль определяет индивидуальные параметры настройки системы (разрешение дисплея, параметры сетевых соединений, подключенные устройства и многое другое). Информация о пользовательских профилях также хранится в реестре.

• При установке приложений. Каждый раз при запуске программы установки происходит добавление в реестр новых конфигурационных данных. Начиная свою работу, все программы установки должны считывать информацию из реестра, чтобы определить, присутствуют ли в системе необходимые им компоненты. Кроме того, системный реестр позволяет приложениям совместно использовать конфигурационную информацию, что предоставляет им больше возможностей для взаимодействия. Приложение должно активно и правильно использовать реестр, а также иметь возможность корректного удаления, не затрагивая при этом компонентов, которые могут использоваться другими программами (библиотеки, программные модули и т. п.). Эта информация тоже хранится в реестре.

• При администрировании системы. Когда пользователь вносит изменения в конфигурацию системы с помощью средств администрирования системы (напр. утилиты Панели управления или оснастки MMC), все изменения сразу отражаются в системном реестре. По сути средства администрирования представляют собой наиболее удобные и безопасные средства модификации реестра. Кстати, к средствам администрирования можно отнести и редактор реестра (regedit.exe), ведь все изменения в систему можно вносить непосредственно правкой реестра.

Структура реестра

Реестр имеет древовидную структуру и состоит из 5 основных разделов, их еще называют ветвями реестра:

HKEY_LOCAL_MACHINE (HKLM) — самый большой раздел реестра. В нем сосредоточены все основные настройки операционной системы, а также аппаратного и программного обеспечения компьютера. Информация, содержащаяся в этом разделе, применяется ко всем пользователям, регистрирующимся в системе.

 

HKEY_ CLASSES_ ROOT (HKCR) — содержит ассоциации между приложениями и типами файлов (по расширениям файлов). Кроме того, в этом разделе находится информация о зарегистрированных типах файлов и объектах COM и ActiveX. Кроме HKEY_ CLASSES_ ROOT эти сведения хранятся также в разделах HKEY_LOCAL_MACHINE и HKEY_CURRENT_USER. Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников.

 

HKEY_USERS( HKU) — содержит настройки среды для каждого из загруженных пользовательских профилей, а также для профиля по умолчанию. В HKEY_USERS находится вложенный раздел \Default, а также другие подразделы, определяемые идентификатором безопасности (Security ID, SID) каждого пользователя

 

HKEY_CURRENT USER (HKCU) — cодержит настройки среды для пользователя, на данный момент зарегистрировавшегося в системе (переменные окружения, настройки рабочего стола, параметры сети, приложений и подключенных устройств).Этот раздел дублирует информацию в HKEY_USERS\user SID, где user SID — идентификатор безопасности пользователя, зарегистрировавшегося в системе на текущий момент (узнать SID текущего пользователя можно, набрав в командной строке whoami /user) .

 

HKEY_CURRENT_ CONFIG (HKCC) — cодержит настройки для текущего аппаратного профиля. Текущий аппаратный профиль включает в себя наборы изменений, внесенных в стандартную конфигурацию устройств, заданную в подразделах Software и System корневого раздела HKEY LOCAL_MACHINE. В HKEY_CURRENT_CONFIG отражаются только изменения. Кроме того, информация этого раздела находится в HKEY_LOCAL_MACHINE\System \CurrentControlSet\HardwareProfiles\Current

 

Данные в реестре хранятся в виде параметров, расположенных в ключах реестра. Каждый параметр характеризуется именем, типом данных и значением.

Основные типы данных, применяемые в реестре

REG_DWORD —  32-х разрядное число. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать эти данные в двоичном, шестнадцатеричном и десятичном формате

 

REG_SZ — Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных

 

REG_EXPAND_SZ — Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения, например, используется для записи переменных окружения

 

REGJMULTI_SZ — Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL

 

REG_BINARY — Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате

 

REG_RESOURCE_LIST — Список аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE

 

Также иногда можно встретить такие типы данных реестра:

REG_RESOUECE_ REQUIREMENTS_LIST — Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE

REG_FULL_RESOURCE_ DESCRIPTOR — Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE

REG_LINK — Символическая ссылка Unicode. Этот тип данных интересен тем, что позволяет одному элементу реестра ссылаться на другой ключ или параметр.

REG_QWORD — 64-х разрядное число.

REG_DWORD_ LITTLE_ENDIAN — 32-разрядное число в формате «остроконечников» (little-endian), эквивалент REG_DWORD

REG_DWORD_BIG_ ENDIAN — 32-разрядное число в формате «тупоконечников» (big-endian)

REG_QWORD_LITTLE_ ENDIAN — 64-разрядное число в формате «остроконечников». Эквивалент REG_QWORD

REG_NONE — Параметр не имеет определенного типа данных

windowsnotes.ru

RegSetValueEx

Функция RegSetValueEx

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Описатель открываемого раздела реестра или один из следующих флагов, которые идентифицируют ветви, в которых будут созданы новые разделы: Const HKEY_CLASSES_ROOT = &H80000000Ветвь HKEY_CLASSES_ROOT Const HKEY_CURRENT_CONFIG = &H80000005Ветвь HKEY_CURRENT_CONFIG Const HKEY_CURRENT_USER = &H80000001Ветвь HKEY_CURRENT_USER Const HKEY_DYN_DATA = &H80000006Windows 95\98: Ветвь HKEY_DYN_DATA Const HKEY_LOCAL_MACHINE = &H80000002Ветвь HKEY_LOCAL_MACHINE Const HKEY_PERFORMANCE_DATA = &H80000004Windows NT\2000: Ветвь HKEY_PERFORMANCE_DATA Const HKEY_USERS = &H80000003Ветвь HKEY_USERS lpValueNameЗначение параметра. Если это пустая строка, то функция запишет в реестр значение не присвоено или по умолчанию ReservedЗарезервированный параметр. Установлен равным 0 dwTypeОдин из следующих флажков, идентифицирующих тип данных для записи в системном реестре: REG_BINARY = 3Нетекстовая последовательность байтов REG_DWORD = 4Аналогично REG_DWORD_LITTLE_ENDIAN REG_DWORD_BIG_ENDIAN = 532-разрядное целое число, сохраненное в формате big-endian REG_DWORD_LITTLE_ENDIAN = 432-разрядное целое число, сохраненное в формате little-endian REG_EXPAND_SZ = 2Строка с нулевым символом в конце, которая содержит нерасширенные переменные среды REG_LINK = 6A Unicode symbolic link. REG_MULTI_SZ = 7Ряд строк, разделенных нулевым символом и заканчивающийся двумя нулевыми символами REG_NONE = 0Никакой тип данных REG_RESOURCE_LIST = 8Список ресурсов в карте ресурса REG_SZ = 1Строка с завершающим нулевым символом lpDataЧисло, строка или другие данные для записи в системном реестре cbDataРазмер в байтах данных, записываемых в системный реестр

Пример

' Создаем раздел 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

Категория

Реестр

rusproject.narod.ru

236

Типы данных и правила названия ключей и параметров.

Редактор реестра понимает пять типов данных:

  • REG_SZ - строковые (текстовые) параметры, содержат текст заключенный в кавычки, например "Это текстовый параметр". Пустой текстовый параметр отображается в виде "";

  • REG_BINARY - двоичный параметр, это числа представленные в виде последовательности байтов, например 00 08 10 21, параметр должен иметь как минимум 4 байта (32 бита). пустой параметр отображается в редакторе реестра как двоичное значение нуля.

  • REG_DWORD - представляют особый тип двоичных данных. Параметры REG_DWORD очень длинны, и представляются в сокращенной шеснадцатиричной форме. Сокращение DWORD расшифровывается как Double WORD (двойное слово) (WORD (слово) - это 4 байта в 32 разрядных системах). По умолчанию редактор реестра назначает нулевое значение параметру REG_DWORD - 0х0000000 (0). Единица будет выглядеть следующим образом 0х0000001 (1). Диапазон значений 0х0000000 - FxFFFFFFF или 0 - 4 294 967 295.

  • REG_EXPAND_SZ - расширенная текстовая строка, содержащая переменную, например %systemroot%. (Поддерживается только Regedit32.exe)

  • REG_MULTI_SZ - Многострочный параметр (multiple line string) (Поддерживается только Regedit32.exe)

Значение параметра не может превышать 16 Кб, поэтому вы не найдете в реестре слишком длинных строк или данных. Общий размер подключа также неможет превышать 64 Кб (для Windows 95), в Windows 98 - ключ может содержать более 64 Кб данных Значение параметра занимающего более 16Кб, следует помещать в отдельный файл, а в реестр записывать ссылку на этот файл в качестве параметра.

В названиях ключей и параметров разрешается использовать цифры от 0 до 9, буквы от a до z, символ подчеркивания (_) и пробелы.

Copyright: [19]

registry.narod.ru

Правило Sz-значения реестра | Microsoft Docs

  • 03/04/2009
  • Время чтения: 2 мин

В этой статье

Основное правило Sz-значения реестра в System Center Updates Publisher используется для создания и изменения определений обновления программного обеспечения. Используется в основном в качестве правила применимости или правила установленного типа. Указанное значение раздела реестра сравнивается с обнаруженным на компьютере. Если правило не проходит проверку, обновление программного обеспечения считается неприменимым или неустановленным на компьютере. Правило Sz-значения реестра имеет следующие параметры настройки.

  • Путь реестра. Указывает путь к разделу реестра. Пример: HKEY_LOCAL_MACHINE\Software\MyCompany\MyTool\MyKey. Это обязательное поле.

  • Значение реестра. Указывает значение раздела реестра, заданное в поле "Путь реестра". Чтобы использовать значение по умолчанию, оставьте это поле пустым.

  • Использование 32-разрядного реестра. Указывает, будет ли обнаружение куста реестра всегда выполняться в 32-разрядном режиме либо сначала будет определяться тип компьютера (64-разрядный или 32-разрядный), а затем соответствующим образом будет обнаруживаться куст реестра. По умолчанию флажок Использовать 32-разрядную систему не установлен и поддерживается 64-разрядное и 32-разрядное обнаружение реестра.

  • Сравнение. Указывает значение REG_SZ в реестре компьютера: меньше, меньше или равно, равно, больше или равно либо больше заданного строкового значения. Это обязательное поле.

  • Строковое значение. Указывает значение раздела реестра REG_SZ для проверки на клиентском компьютере. Это обязательное поле.

См. также

Задачи

Создание правил в Updates Publisher

Другие ресурсы

Основные правилаУправление правилами в Updates PublisherПравила Updates Publisher

msdn.microsoft.com