Excel实例下载
  VBA  应用教程
    数据库SQL知识
设为首页
VBA操作注册表的三种方法
作者:bengdeng | 来源:Excel吧 | 时间:2009-06-10 | 阅读权限:游客 | 会员币:0 | 【

论坛中,已有不只一位的朋友问过VBA操作注册表的方法,因此就总结一下。

VBA操作注册表,一般有三种方法:

1、利用内置的操作注册表的函数来完成。VB或VBA有四个内置操作注册表的函数,分别是SaveSetting(设置注册表的键或值),GetSetting(获得注册表的键或值),GetAllSettings(获得键下所有的键值)与DeleteSetting(删除键或值)。具体的说明在帮助里有,就不重复了。不过这四个函数只能在HKEY_CURRENT_USER\Software\VB and VBA Program Setting这个键值下操作,因此还是有所限制,下面就通过一段代码来熟悉一下这四个函数:

Sub 利用内置函数操作注册表()
Dim 工程名称 As String
Dim 注册表项 As String
Dim 注册表键名 As Variant
Dim 注册表键值 As Variant
Dim arr As Variant
Dim ii As Integer

工程名称 = "Excel吧"
注册表项 = "网站"
注册表键名 = Array("地址", "站长", "创建时间")
注册表键值 = Array("http://www.excelba.com", "bengdeng", "2006-03-01")

For ii = 0 To UBound(注册表键名)
    SaveSetting 工程名称, 注册表项, 注册表键名(ii), 注册表键值(ii)
Next
MsgBox "已成功在HKEY_CURRENT_USER\Software\VB and VBA Program Setting中写入键值!"
MsgBox "接下来利用GetSetting一个个读出写入的键值"
For ii = 0 To UBound(注册表键名)
    MsgBox 工程名称 & 注册表项 & 注册表键名(ii) & "是" & GetSetting(工程名称, 注册表项, 注册表键名(ii))
Next
MsgBox "接下来利用GetAllSettings读出所有写入的键值"
arr = GetAllSettings(工程名称, 注册表项)

For ii = LBound(arr, 1) To UBound(arr, 1)
    MsgBox 工程名称 & 注册表项 & arr(ii, 0) & "是" & arr(ii, 1)
Next
DeleteSetting 工程名称
MsgBox "已成功删除写入的键值!"
End Sub

2、利用Windows Scripting Host的注册表函数来完成。WSH的RegWrite(设置注册表的键或值),RegRead(获得注册表的键或值与RegDelete(删除键或值)也可以用来操作注册表,而且没有上面的限制,下面还是用一段代码来了解这三个函数的用法:

Sub 利用WSH操作注册表()
Dim 注册表主键 As String
Dim 工程名称 As String
Dim 注册表项 As String
Dim 注册表键名 As Variant
Dim 注册表键值 As Variant
Dim arr As Variant
Dim ii As Integer
Dim WSH As WshShell

Set WSH = CreateObject("WSCRIPT.SHELL")
注册表主键 = "HKEY_CURRENT_USER\Software\"
工程名称 = "Excel吧"
注册表项 = "网站"
注册表键名 = Array("地址", "站长", "创建时间")
注册表键值 = Array("http://www.excelba.com", "bengdeng", "2006-03-01")

For ii = 0 To UBound(注册表键名)
    WSH.RegWrite 注册表主键 & 工程名称 & "\" & 注册表项 & "\" & 注册表键名(ii), 注册表键值(ii)
Next
MsgBox "已成功在" & 注册表主键 & "中写入键值!"
MsgBox "接下来利用RegRead一个个读出写入的键值"
For ii = 0 To UBound(注册表键名)
    MsgBox 工程名称 & 注册表项 & 注册表键名(ii) & "是" & WSH.RegRead(注册表主键 & 工程名称 & "\" & 注册表项 & "\" & 注册表键名(ii))
Next
WSH.RegDelete 注册表主键 & 工程名称 & "\" & 注册表项 & "\"
WSH.RegDelete 注册表主键 & 工程名称 & "\"
MsgBox "已成功删除写入的键值!"
End Sub

3、利用API函数来操作注册表。API的强大是公认的,当然也可以用来操作注册表,但一般都会封装原始的API函数,使操作注册表更方法,不然光申明常量与API函数的篇幅就有老长了,这里就不把代码贴在这里了,而直接提供相应的代码文件,有兴趣的朋友可以到Excel吧的下载栏目中下载:http://www.excelba.com/Soft/Html/134.html

至此,VBA操作注册表的方法就总结完毕,希望对你有所帮助!

文章录入:admin | 浏览次数:
相关评论(以下网友评论只代表其个人观点,不代表Excel吧的观点或立场)
相关信息

关于本站 | 留言本站 | 友情连接 | 后台管理
Copyright © 2005 - 2008 Excel吧 Inc. All Rights Reserved.
HxCms Ver9.0  闽ICP备06001689号
关闭此窗口