如何:在 Visual Basic 中设置注册表项的值
更新:2007 年 11 月
My.Computer.Registry 对象的 SetValue 方法可用于写入 Windows 注册表的值。注册表包含用于存储数据的顶级(或根)注册表项。例如,HKEY_LOCAL_MACHINE 根注册表项用于存储由所有用户使用的计算机级别设置,而 HKEY_CURRENT_USER 用于存储特定于个别用户的数据。
如果注册表值不存在,将创建注册表值,包括完整的注册表项路径。
过程
将值写入注册表项
使用 SetValue 方法指定注册表项和值。此示例在 HKEY_CURRENT_USER\Software\TestApp 注册表项中将 Name 值设置为“Author's Name”。
My.Computer.Registry.SetValue _ ("HKEY_CURRENT_USER\Software\TestApp", "Name", "Author's Name")
此代码示例也可用作 IntelliSense 代码段。在代码段选择器中,此代码示例位于“Windows 操作系统”>“注册表”中。有关更多信息,请参见如何:在代码中插入代码段 (Visual Basic)。
可靠编程
用户首选项数据应写入 Microsoft.Win32.Registry.CurrentUser 配置单元。
在注册表中以纯文本形式存储机密信息(例如密码)不安全,即使注册表项受访问控制列表 (ACL) 的保护。
以下情况可能会导致异常:
注册表项的名称为 Nothing (ArgumentNullException)。
注册表项名称超过 255 个字符的限制 (ArgumentException)。
指定的配置单元无效 (ArgumentException)。
注册表项已关闭 (IOException)。
该路径无效 (IOException)。
注册表项是只读的 (UnauthorizedAccessException)。
安全性
若要运行此进程,程序集需要由 RegistryPermission 类授予的特权级别。如果在部分信任的上下文中运行,则该进程可能会因特权不足而引发一个异常。同样,用户必须有创建或写入设置的正确的 ACL。例如,具有代码访问安全性权限的本地应用程序可能不具有操作系统权限。有关更多信息,请参见代码访问安全性基础知识。