officeba > 单独文章


教大家用VBA来控制注册表

教大家用VBA来控制注册表,三种办法
1、利用强大的API函数。API功能强大,除了其它功能外也可以用来操作注册表,但一般都会封装原始的API函数,使操作注册表更方法
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("https://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、利用内置的操作注册表的函数来完成。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("https://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
到此,三种教VBA来控制注册表介绍结束

声明:欢迎各大网站转载本站文章,还请保留一条能直接指向本站的超级链接,谢谢!

时间:2009-06-12 22:22:12,点击:65824


【OfficeBa论坛】:阅读本文时遇到了什么问题,可以到论坛进行交流!Excel专家邮件:342327115@qq.com(大家在Excel使用中遇到什么问题,可以咨询此邮箱)。

【声明】:以上文章或资料除注明为Office自创或编辑整理外,均为各方收集或网友推荐所得。其中摘录的内容以共享、研究为目的,不存在任何商业考虑。如有任何异议,请与本站联系,本站确认后将立即撤下。谢谢您的支持与理解!


相关评论

我要评论

评论内容