如何:在 Visual Basic 中创建注册表项并设置其值

更新:2007 年 11 月

My.Computer.Registry 对象的 CreateSubKey 方法可用于创建注册表项。

过程

创建注册表项

  • 使用 CreateSubKey 方法,指定在其下放置注册表项的配置单元以及注册表项的名称。参数 Subkey 不区分大小写。此示例在 HKEY_CURRENT_USER 下创建注册表项 MyTestKey。

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    

创建注册表项并在注册表项中设置值

  1. 使用 CreateSubkey 方法,指定在其下放置注册表项的配置单元以及注册表项的名称。此示例在 HKEY_CURRENT_USER 下创建注册表项 MyTestKey。

    My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
    
  2. 用 SetValue 方法设置值。此示例将字符串值"MyTestKeyValue" 设置为 "This is a test value"。

    My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", _
    "MyTestKeyValue", "This is a test value.")
    

示例

此示例在 HKEY_CURRENT_USER 下创建注册表项 MyTestKey,然后将字符串值 MyTestKeyValue 设置为 This is a test value。

My.Computer.Registry.CurrentUser.CreateSubKey("MyTestKey")
' Change MyTestKeyValue to This is a test value. 
My.Computer.Registry.SetValue("HKEY_CURRENT_USER\MyTestKey", _
"MyTestKeyValue", "This is a test value.")

可靠编程

检查注册表结构以查找适合您的项的位置。例如,可能要打开当前用户的 HKEY_CURRENT_USER\Software 项,然后用您的公司名称创建一项。然后将注册表值添加到您的公司的项上。

从 Web 应用程序读取注册表时,根据在该 Web 应用程序中实施的身份验证和模拟来确定当前用户。

与将数据写入本地计算机 (LocalMachine) 相比,将数据写入用户文件夹 (CurrentUser) 更安全。

在您创建注册表值时,需要确定如果该值已存在则应执行的操作。另一进程(可能是恶意进程)可能已创建了该值,并拥有对该值的访问权。将数据放入注册表值后,其他进程就可以使用这些数据了。若要防止出现这种情况,请使用 GetValue 方法。它在注册表项已经不存在时返回 Nothing。

在注册表中以纯文本形式存储机密信息(例如密码)是不安全的,即使注册表项受 ACL(访问控制列表)保护。

以下情况可能会导致异常:

安全性

若要运行此进程,程序集需要由 RegistryPermission 类授予的特权级别。如果在部分信任的上下文中运行,则该进程可能会因特权不足而引发一个异常。同样,用户必须有创建或写入设置的正确的 ACL。例如,具有代码访问安全性权限的本地应用程序可能不具有操作系统权限。有关更多信息,请参见代码访问安全性基础知识

请参见

任务

疑难解答:操作注册表

演练:创建注册表项并更改其值

概念

常见的注册表任务

代码访问安全性基础知识

参考

My.Computer.Registry 对象

My.Computer.Registry.CurrentUser 属性

CreateSubKey