Практическое руководство. Создание раздела реестра и задание его значения в Visual Basic
Обновлен: Ноябрь 2007
Метод CreateSubKey объекта My.Computer.Registry позволяет создать раздел реестра.
Процедура
Создание раздела реестра
Используйте метод CreateSubKey, задав куст, в который нужно поместить раздел, а также имя раздела. Параметр Subkey нечувствителен к регистру. В этом примере создается раздел реестра MyTestKey в HKEY_CURRENT_USER.
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Создание раздела реестра и установка его значения
Используйте метод CreateSubkey, задав куст, в который нужно поместить раздел, а также имя раздела. В этом примере создается раздел реестра MyTestKey в HKEY_CURRENT_USER.
My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
Установка значения с помощью метода 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 для создания и записи параметров. Например, локальное приложение, имеющее разрешение управления доступом для кода, может не иметь разрешения операционной системы. Дополнительные сведения см. в разделе Основы управления доступом для кода.
См. также
Задачи
Устранение неполадок, связанных с управлением реестром
Пошаговое руководство. Создание раздела реестра и изменение его значений
Основные понятия
Основы управления доступом для кода