写入注册
VB 中提供了用于访问注册表的方法
GetSetting 函数, 从 Windows 注册表中的应用程序项目返回注册表项设置值。
SaveSetting 语句, 在 Windows 注册表中保存或建立应用程序项目。
DeleteSetting 语句, 在 Windows 注册表中,从应用程序项目里删除区域或注册表项设置。
GetAllSettings 函数, 从 Windows 注册表中返回应用程序项目的所有注册表项设置及其相应值(开始是由 SaveSetting 产生)。
诸如窗口位置、使用的文件以及其它项目等程序设置值是存储在各种 .ini 文件中。在 Windows NT、Windows 95 以及 Windows 的较新版本中,这些程序设置值则是存储在系统注册位置中。
Visual Basic 提供了一个标准的注册位置以存储创建于 Visual Basic 的应用程序的程序信息:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\appname\section\key
Visual Basic 也提供了四个语句或函数来处理存储在应用程序注册位置的程序设置值。
函数或语句 描述
GetSetting 函数 检索注册表设置值。
SaveSetting 语句 保存或创建注册表设置值。
GetAllSettings 函数 返回一个包含多项注册表设置值的数组。
DeleteSetting 语句 删除注册表设置值。
创建或保存应用程序设置值
可以使用 SaveSetting 语句将一个新值保存至存储于应用程序注册位置中的注册表项中。例如,可以向应用程序的主窗体中的 Form_Unload 事件添加代码以便在停机时保存设置值,或者向“选项”对话框的 Form_Unload 事件添加代码以便更新的首选项。
按以下语法使用 SaveSetting 语句:
SaveSetting appname, section, key, value 
语法
SaveSetting appname, section, key, setting
SaveSetting 语句的语法具有下列命名参数:
部分 描述
appname 必要。字符串表达式,包含应用程序或工程的名称,对这些应用程序或工程使用设置
section 必要。字符串表达式,包含区域名称,在该区域保存注册表项设置。
key 必要。字符串表达式,包含将要保存的注册表项设置的名称。
setting 必要。表达式,包含 key 的设置值。
下列代码保存 Backup 和 LastEntry 表项的新值,这些表项包含在名为“RegCust”的应用程序
的注册位置的启动部分。该代码假设变量 strDate 和 intLastEntry 包含有新的值。
Private Sub Form_Unload(Cancel As Integer)
SaveSetting "RegCust", "Startup", "Backup", strDate
SaveSetting "RegCust", "Startup", "LastEntry", _
intLastEntry
End Sub
如果在注册位置的 Software/Microsoft 部分没有应用程序“RegCust”的注册项、或者没有这些指定的部分或注册表项,该代码将创建它。
检索应用程序设置值
可以使用 GetSetting 和 GetAllSettings 函数检索存储在应用程序注册位置的注册值。例如,应用程序能够检索注册表设置值以便在它被关闭时重新建立其条件。
一次检索一项设置值
如果仅检索一项注册表设置值,通过以下的语法使用 GetSetting 函数:
GetSetting(appname, section, key[, default]) 
返回注册表中的键值,键值为空或返回不成功时,则返回默认值
语法
GetSetting(appname, section, key[, default])
GetSetting 函数的语法具有下列命名参数:
部分 描述
appname 必要。字符串表达式,包含应用程序或工程的名称,要求这些应用程序或工程有注册表项设置。
section 必要。字符串表达式,包含区域名称,要求该区域有注册表项设置。
key 必要。字符串表达式,返回注册表项设置的名称。
default 可选。表达式,如果注册表项设置中没有设置值,则返回缺省值。如果省略,则 default 取值为长度为零的字符串 ("")。
下列代码检索“RegCust”应用程序启动部分的 LastEntry 表项的值,并将该值显示在立即窗口中。
Private Sub Form_Load()
Dim intLastEntry As Integer
intLastEntry = GetSetting("RegCust", "Startup", _
"LastEntry", "0")
Debug.Print intLastEntry
End Sub
应注意,可以使用可选的参数 default 设置,当注册位置中指定的表项没有值时由 Visual Basic 返回的值。
一次检索多项设置值
进入注册表
如果检索多项注册表项的值,通过以下的语法使用 GetAllSettings 函数:
GetAllSettings(appname, section)
下列代码检索“RegCust”应用程序启动部分的两栏注册表项的值,并将其结果显示在立即窗口中。
Private Sub Form_Load()
Dim avntSettings As Variant
Dim intX As Integer
avntSettings = GetAllSettings("RegCust", "Startup")
For intX = 0 To UBound(avntSettings, 1)