如何:在 Visual Basic 中确定注册表项中是否存在某个值
更新:2007 年 11 月
My.Computer.Registry 对象的 GetValue 方法可用来确定给定的值是否存在于特定的注册表项中。
从 Web 应用程序读取注册表时,根据在该 Web 应用程序中实施的身份验证和模拟来确定当前用户。
确定注册表项中是否存在某个值
使用 GetValue 方法检索值。下面的代码检查值,并在不存在值时返回一条消息。
If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp", _ "TestValue", Nothing) Is Nothing Then MsgBox("Value does not exist.") End If
可靠编程
以下情况可能会导致异常:
注册表项的名称为 Nothing (ArgumentNullException)。
用户没有创建注册表项的权限 (SecurityException)。
注册表项名称超过 255 个字符的限制 (ArgumentException)。
注册表项已关闭 (IOException)。
注册表项是只读的 (UnauthorizedAccessException)。
安全性
若要运行此进程,程序集需要由 RegistryPermission 类授予的特权级别。如果在部分信任的上下文中运行,则该进程可能会因特权不足而引发一个异常。同样,用户必须有创建或写入设置的正确的访问控制列表。例如,具有代码访问安全性权限的本地应用程序可能不具有操作系统权限。有关更多信息,请参见代码访问安全性基础知识。