如何:在 Visual Basic 中从注册表项中读取值
My.Computer.Registry 对象中的 GetValue 方法可用于读取 Windows 注册表中的值。 如果项(在本例中为“Software\MyApp”)不存在,则引发异常。 如果 ValueName(在本例中为“Name”)不存在,则返回 Nothing。
从注册表项中读取值
使用 GetValue 方法(指定路径和名称),从注册表项中读取值。 下面的示例从 HKEY_CURRENT_USER\Software\MyApp 中读取 Name 值并在消息框中显示该值。
Dim readValue = My.Computer.Registry.GetValue( "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing) MsgBox("The value is " & readValue)
此代码示例也可用作 IntelliSense 代码段。 在代码段选择器中,此代码示例位于**“Windows 操作系统”>“注册表”**中。 有关更多信息,请参见 如何:插入 IntelliSense 代码段。
可靠编程
注册表包含用于存储数据的顶级(或根)注册表项。 例如,HKEY_LOCAL_MACHINE 根注册表项用于存储由所有用户使用的计算机级别设置,而 HKEY_CURRENT_USER 用于存储特定于个别用户的数据。
以下情况可能会导致异常:
注册表项的名称为 Nothing (ArgumentNullException)。
用户没有读取注册表项 (SecurityException) 的权限。
注册表项名称超过 255 个字符的限制 (ArgumentException)。
安全性
若要运行此进程,程序集需要由 RegistryPermission 类授予的特权级别。 如果在部分信任的上下文中运行,则该进程可能会因特权不足而引发一个异常。 同样,用户必须有创建或写入设置的正确的 ACL。 例如,具有代码访问安全性权限的本地应用程序可能不具有操作系统权限。 有关更多信息,请参见代码访问安全性基础知识。