Практическое руководство. Создание раздела в реестре (Visual C#)

В этом примере пара значений "Name" и "Isabella" добавляется к текущему реестру пользователя в разделе "Names".

Пример

Microsoft.Win32.RegistryKey key;
key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Names");
key.SetValue("Name", "Isabella");
key.Close();

Компиляция кода

  • Скопируйте код и вставьте его в метод Main консольного приложения.

  • Замените параметр Names именем раздела, который находится прямо в узле HKEY_CURRENT_USER реестра.

  • Замените параметр Nam именем значения, которое находится прямо в узле "Names".

Отказоустойчивость

Исследуйте структуру реестра и найдите подходящее место для создания раздела. Например, можно открыть раздел "Software" для текущего пользователя и создать в нем подраздел с названием компании, а затем добавить значения для этого подраздела.

Исключение может возникнуть при следующих условиях:

  • Имя раздела представляет собой значение NULL.

  • У пользователя отсутствуют разрешения на создание разделов реестра.

  • Длина имени раздела превышает ограничение в 255 знаков.

  • Раздел является закрытым.

  • Раздел реестра доступен только для чтения.

Безопасность

Безопаснее записывать данные в папку пользователя — Microsoft.Win32.Registry.CurrentUser, — чем в папку локального компьютера — Microsoft.Win32.Registry.LocalMachine.

При создании значения реестра следует решить, что делать, если такое значение уже есть. Есть вероятность, что другой процесс, возможно вредоносный, уже создал это значение и имеет к нему доступ. При добавлении данных в значение реестра они становятся доступными другим процессам. Для предотвращения этого используется метод Overload:Microsoft.Win32.RegistryKey.GetValue. Он возвращает NULL, если данный раздел не существует.

Хранить секретные данные, например пароли, в реестре в виде обычного текста небезопасно, даже если раздел реестра защищен списком ACL.

См. также

Ссылки

System.IO

Основные понятия

Руководство по программированию на C#

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

Файловая система и реестр (Руководство по программированию на C#)

Чтение, запись и удаление из реестра с C#