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


Как прочитать значение из раздела реестра в Visual Basic

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

Если ключ "Software\MyApp" в следующем примере не существует, создается исключение. Если значение ValueName"Name" в следующем примере не существует, 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).

Безопасность .NET Framework

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

Замечание

Безопасность доступа к коду (CAS) устарела во всех версиях платформ .NET Framework, и .NET. Последние версии .NET не учитывают заметки CAS и создают ошибки, если используются API, связанные с CAS. Разработчики должны искать альтернативные средства выполнения задач безопасности.

См. также