通过下面函数可以读取注册表某节点下的某个参数值:
RegOpenKey hKey, strPath, Ret
GetString = RegQueryStringValue(Ret, strValue)
但是我想枚举某个节点下的所有节点名称,怎么做?比如:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\下有很多子节点,怎样枚举出来?
我想要的是如果在该节点下发现"myopt"这个节点,则msgbox "找到了!"
RegOpenKey hKey, strPath, Ret
GetString = RegQueryStringValue(Ret, strValue)
但是我想枚举某个节点下的所有节点名称,怎么做?比如:
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\下有很多子节点,怎样枚举出来?
我想要的是如果在该节点下发现"myopt"这个节点,则msgbox "找到了!"
解决方案 »
- 如何用VB6通过ADO连接SQL Server 2008?
- 急求!一个文本文件读取问题!
- SQL数据库在水晶9.0的应用问题!
- vsPrinter在98和xp下为什么有不同的反映?
- 问一个简单的问题,关于if else语句,
- 如何编程得到本地机器的机器名及IP?
- 程序运行时,不接受键盘指令
- 急!!!谁知道有没有释放内存的api声明??高分相送!!!(在线等)
- vb中怎么调用dos命令
- VS6中有个程序可以看exe里面所调用的外部函数名,是哪个程序着?
- 怎么向自定义的word的统计表里面填充数据??
- 使用MSHFlexGrid控件,用Set MSHFlexGrid1.DataSource = rs绑定数据库 ,如何统计某列的和
Private Declare Function RegOpenKey Lib "advapi32.dll" Alias "RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As String, ByRef phkResult As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Const HKEY_LOCAL_MACHINE As Long = &H80000002Private Sub Command1_Click()
Dim hKey As Long, ret As Long, Name As String, Idx As Long
Dim tempName As StringList1.Clear
RegOpenKey HKEY_LOCAL_MACHINE, "SOFTWARE", hKey
Idx = 0
Name = String(256, Chr(0))
Do
ret = RegEnumKey(hKey, Idx, Name, Len(Name))
If ret = 0 Then
tempName = Left(Name, InStr(Name, Chr(0)) - 1)
List1.AddItem tempName
If Trim(LCase(tempName)) = "myopt" Then Debug.Print "找到了myopt"
Idx = Idx + 1
End If
Loop Until ret <> 0RegCloseKey hKey
End Sub
RegOpenKey HKEY_LOCAL_MACHINE, "ControlSet001", hKey'改为你的节点