VB 自带的注册表操作函数示例「转」
- 城事精选
- 2022-10-22 10:26:11
- 64
Option Explicit
'SaveSetting在 Windows 登记表中保留或者建设运用程-序事情事情呢。
'语法
'把事情事情写入登记表savesetting "运用程-序名","主键名","项","字符串值"
'SaveSetting appname, section, Key, setting
'运用命名参数
'SaveSetting appname:="MyApp", section:="Startup", Key:="Top", setting:=75
'SaveSetting 语句的语法拥有以下命名参数:
'部-分 描写
'appname 必-要呢。字符串讲明式,包罗运用程-序或者工程的称呼,对这些运用程-序或者工程运用设置
'section 必-要呢。字符串讲明式,包罗地域称呼,在该地域保留登记表项设置呢。
'key 必-要呢。字符串讲明式,包罗将要保留的登记表项设置的称呼呢。
'setting 必-要呢。讲明式,包罗 key 的设置值呢。
'声明
'如果岂论怎么样也不行以保留登记表项设置,则将致使过错发生呢。
Private Sub Command1_Click()
SaveSetting "登记表函数示例", "设置", "设置值", Text1.Text
SaveSetting "登记表函数示例", "设置", "2", "这是第两个值"
SaveSetting "登记表函数示例", "新次项", "3", "这是第三个值"
End Sub
'GetSetting 该办法一开始读取,登记表中HKEY_CURRENT_USER\Software\VB and VBA Program Settings下响应的值呢。
'------------------------------------
'语法
'GetSetting("运用程-序名","主键名","项",[默许值])
'GetSetting(appname, section, key[, default])
'GetSetting 函数的语法拥有以下命名参数:
'部-分 描写
'appname 必-要呢。字符串讲明式,包罗运用程-序或者工程的称呼,乞求这些运用程-序或者工程有登记表项设置呢。
'section 必-要呢。字符串讲明式,包罗地域称呼,乞求该地域有登记表项设置呢。
'key 必-要呢。字符串讲明式,返回登记表项设置的称呼呢。
'default 可选呢。讲明式,如果登记表项设置中有无设置值,则返回缺省值呢。如果省掉,则 default 取值为长度为零的字符串 ("")呢。
'声明
'如果 GetSetting 的参数中的任何一项都不存在,则 GetSetting 返回 default 的值呢。
Private Sub Command2_Click()
Label1.Caption = GetSetting("登记表函数示例", "设置", "设置值", "默许值")
End Sub
'DeleteSetting在 Windows 登记表中,从运用程-序事情事情里删除地域或者登记表项设置呢。
'语法
'DeleteSetting "运用程-序名"[,"主键名"][,"项"]
'DeleteSetting appname [,section][, key]
'DeleteSetting 语句的语法拥有以下命名参数:
'部-分 描写
'appname 必须的呢。字符串讲明式,包罗运用程-序或者工程的称呼,地域或者登记表项用于这些运用程-序或者工程呢。
'section 可选呢。字符串讲明式,包罗要删除登记表项设置的地域称呼呢。如果惟有 appname 和 section,则将指定的地域连同所有有关的登记表项设置都删除呢。
'key 可选呢。字符串讲明式,包罗要删除的登记表项设置呢。
'声明
'如果供应了所有参数,则删除指定的登记表项设置呢。如果试图运用不存在的地域或者登记表项设置上的 DeleteSetting 语句,则发生一位运转时过错呢。
'DeleteSetting "MyApp" '如果省掉了section和key,则所有appname都被删除
'再删除时,岂论登记项下有无其余值,都市被删除
Private Sub Command3_Click()
If GetSetting("登记表函数示例", "设置", "设置值") = Empty Then
MsgBox "现在登记中的值以前被删除"
Else
DeleteSetting "登记表函数示例", "设置", "设置值"
End If
End Sub
Private Sub Command4_Click()
If GetSetting("登记表函数示例", "设置", "设置值") = Empty Then
MsgBox "现在登记中的值以前被删除"
Else
DeleteSetting "登记表函数示例", "设置"
End If
End Sub
Private Sub Command5_Click()
If GetSetting("登记表函数示例", "设置", "设置值") = Empty Then
MsgBox "现在登记中的值以前被删除"
Else
DeleteSetting "登记表函数示例"
End If
End Sub
'GetAllSettings(appname, section): 返回一位包罗多项登记表设置值的数组
Private Sub Command6_Click()
Dim avntSettings As Variant
Dim intX As Integer
avntSettings = GetAllSettings("登记表函数示例", "设置")
If avntSettings Empty Then
For intX = 0 To UBound(avntSettings, 1)
Debug.Print avntSettings(intX, 0), avntSettings(intX, 1)
Next intX
Else
MsgBox "登记表中有无值"
End If
End Sub