Практическое руководство. Чтение значения из раздела реестра в 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 для создания и записи параметров. Например, локальное приложение, имеющее разрешение управления доступом для кода, может не иметь разрешения операционной системы. Дополнительные сведения см. в разделе Основы управления доступом для кода.