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


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

Для чтения значений из реестра Windows можно использовать метод GetValue объекта My.Computer.Registry.

Если ключ, «software \ MyApp» в следующем примере, создается исключение. Если ValueName, «имя» в следующем примере не существует, возвращается Nothing.

Метод GetValue может также использоваться для определения того, существует ли заданное значение в определенном разделе реестра.

Если код читает реестр из веб-приложения текущий пользователь идентифицируется проверкой подлинности и олицетворения, приведенную в веб-приложении.

Чтение значения из раздела реестра

  • Для чтения значения из раздела реестра используйте метод GetValue, указав путь и имя. В этом примере считывается значение Name из раздела HKEY_CURRENT_USER\Software\MyApp, после чего оно отображается в окне сообщения.

    Dim readValue = My.Computer.Registry.GetValue(
        "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing)
    MsgBox("The value is " & readValue)
    

Данный пример доступен также в качестве фрагмента кода IntelliSense. В окне выбора фрагмента кода он расположен в разделе Операционная система Windows > Реестр. Дополнительные сведения см. в разделе Фрагменты кода.

Определение существования значения в разделе реестра

  • Для извлечения значения используйте метод GetValue. Следующие проверки кода, существует ли значение, и возвращает сообщение, если это не так.

    If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp",
    "TestValue", Nothing) Is Nothing Then
      MsgBox("Value does not exist.")
    End If
    

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

Реестр содержит разделы верхнего уровня, или корневые разделы, которые используются для хранения данных. Например, корневой раздел HKEY_LOCAL_MACHINE используется для хранения на параметров уровне компьютера, используемых всеми пользователями, в то время как HKEY_CURRENT_USER используется для хранения данных для отдельного пользователя.

При следующих условиях возможно возникновение исключения.

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

  • Пользователь не имеет разрешений на чтение разделов реестра (SecurityException).

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

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

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

См. также

Ссылки

RegistryProxy

RegistryHive

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

Чтение данных из реестра и запись в реестр (Visual Basic)