Поделиться через


Практическое руководство. Создание раздела реестра и задание его значения в Visual Basic

Обновлен: Ноябрь 2007

Метод CreateSubKey объекта My.Computer.Registry позволяет создать раздел реестра.

Процедура

Создание раздела реестра

  • Используйте метод CreateSubKey, задав куст, в который нужно поместить раздел, а также имя раздела. Параметр Subkey нечувствителен к регистру. В этом примере создается раздел реестра MyTestKey в HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

Создание раздела реестра и установка его значения

  1. Используйте метод CreateSubkey, задав куст, в который нужно поместить раздел, а также имя раздела. В этом примере создается раздел реестра MyTestKey в HKEY_CURRENT_USER.

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. Установка значения с помощью метода SetValue. В этом примере строке "MyTestKeyValue" присваивается значение "Это тестовое значение".

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", _
    "MyTestKeyValue", "This is a test value.")
    

Пример

В этом примере создается раздел реестра MyTestKeyв HKEY_CURRENT_USER, а затем строке MyTestKeyValue присваивается значение This is a test value.

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value. 
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", _
"MyTestKeyValue", "This is a test value.")

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

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

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

Безопаснее записывать данные в ветку текущего пользователя (CurrentUser), чем в ветку локального компьютера (LocalMachine).

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

Небезопасно хранить секретные данные, например пароли, в реестре обычным текстом, даже если раздел реестра защищен ACL (списком управления доступом)

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

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

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

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

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

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

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

Для выполнения этого процесса сборке требуется уровень привилегий, предоставляемых классом RegistryPermission. Если процесс выполняется в контексте с частичным доверием, он может сгенерировать исключение из-за недостатка привилегий. Аналогичным образом пользователь должен иметь правильные ACL для создания и записи параметров. Например, локальное приложение, имеющее разрешение управления доступом для кода, может не иметь разрешения операционной системы. Дополнительные сведения см. в разделе Основы управления доступом для кода.

См. также

Задачи

Устранение неполадок, связанных с управлением реестром

Пошаговое руководство. Создание раздела реестра и изменение его значений

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

Типичные операции с реестром

Основы управления доступом для кода

Ссылки

Объект My.Computer.Registry

Свойство My.Computer.Registry.CurrentUser

CreateSubKey