如何用具体的 API 函数操作注册表?

VB读写注册表,提供了 SaveSetting、GetSetting 等函数,但它们读写注册表的位置有限。那么,如何将如下注册表操作代码,改为使用 API 函数来实现?
Private Sub Form_Load()
Command1(0).Caption = "添加"
Command1(1).Caption = "查询"
Command1(2).Caption = "查看全部"
Command1(3).Caption = "删除"
Command1(4).Caption = "删除全部"
Command1(5).Caption = "退出"
Text1 = "VBSetting"
End Sub

Private Sub Command1_Click(Index As Integer)
Dim K As Variant, S As String, J As Integer
Select Case Index
Case 0
SaveSetting "Huama", App.EXEName, Text1, App.Path & "\" & App.EXEName & Text1
Case 1
K = GetSetting("Huama", App.EXEName, Text1)
MsgBox "您查询的键值为:" & vbCrLf & K
Case 2
K = GetAllSettings("Huama", App.EXEName) '是一个通用型二维数组
For J = LBound(K, 1) To UBound(K, 1) '从一维的下标到一维的上标
S = S & K(J, 0) & ":" & K(J, 1) & vbCrLf
Next
MsgBox "您查询的键值为:" & vbCrLf & S
Case 3
DeleteSetting "Huama", App.EXEName, Text1
Case 4
DeleteSetting "Huama"
Case 5
Load Me
End
End Select
End Sub

请不吝指教!您提供的代码,如果测试通过,加付30分,如果能将语句或函数及其参数讲解详细,再付20分。
谢谢各位朋友的热心帮助。
各位给出的方案是利用 WScript.Shel 对象操作注册表,但这必须“以管理员身份运行”,否则,系统总是提示“拒绝的权限”而不能写入或删除注册表键值。因此,不是我满意的解决方案。请各位就如何利用 API 函数改写以上代码继续给予指导。谢谢。
最新回答
倾凉血夕

2025-02-25 02:14:54

操作注册表不一定要用API函数的。在我博客中有很多有关操作注册表的VB代码,请参阅:
http://hi.baidu.com/zgmg/blog/item/d2715cf4551bbad5f3d38535.html


如果不能以管理员身份登录Windows的话,系统是不会让修改注册表的。所以,你必须以管理员身份登录。
危險人物

2025-02-25 07:58:56

Dim Reg '把资料写入Registry
Set Reg = CreateObject("wscript.Shell")
Reg.RegWrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\QQ", "D:\QQ\qq.exe" '相当于把qq添加到启动项

Reg.RegRead "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "QQ" '读数据
以此类推。。。
鲜奶千层雪

2025-02-25 05:25:41

TortosieSVN:
里面有一个类可以参考(用户名guest,无密码):

注意开源代码仅供参考,请遵守其Licence。