读取注册表的疑问,求救

zglongfei 2009-08-26 10:09:29
下面是我拿到注册表某KEY下的 所有value name 我想拿到value name对应下的value data

Private Declare Function RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As Long
Private Declare Function RegEnumValue Lib "advapi32.dll" Alias "RegEnumValueA" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpValueName As String, lpcbValueName As Long, ByVal lpReserved As Long, lpType As Long, ByVal lpData As String, lpcbData As Long) As Long
Private Declare Function RegOpenKeyEx Lib "advapi32.dll" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32.dll" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, lpType As Long, lpData As Any, lpcbData As Long) As Long

Const REG_DWORD = 4
Const HKEY_CURRENT_USER = &H80000001
Const KEY_ALL_ACCESS = &H3F
Const ERROR_NO_MORE_ITEMS = 259

Private Sub Command1_Click()
Dim lRet As Long, hKey As Long

lRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\TypedUrls", 0, KEY_ALL_ACCESS, hKey)

If lRet Then MsgBox "Error accessing HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedUrls": Exit Sub

Dim lIndex As Long, aVName$, lVName As Long, lType As Long, aData$, lData As Long

lVName = 100
aVName$ = Space$(lVName)

Do Until lRet = ERROR_NO_MORE_ITEMS
List1.AddItem aVName$
lVName = 100
lData = 100
lIndex = lIndex + 1
lRet = RegEnumValue(hKey, lIndex, aVName$, lVName, 0, lType, aData$, lData)
Loop
lRet = RegCloseKey(hKey)
End Sub



VB 6.0写的 一个list文本框和一个按钮就可以了
我现在拿到的都是左边的 NAME 我想拿到 NAME所对应的 右边的DATA
...全文
44 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lgccaa 2009-08-26
  • 打赏
  • 举报
回复
这里是C版,不是VB
zzyong00 2009-08-26
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lgccaa 的回复:]
这里是C版,不是VB
[/Quote]
zzyong00 2009-08-26
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim lRet As Long, hKey As Long

lRet = RegOpenKeyEx(HKEY_CURRENT_USER, "Software\Microsoft\Internet Explorer\TypedUrls", 0, KEY_ALL_ACCESS, hKey)

If lRet Then MsgBox "Error accessing HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedUrls": Exit Sub

Dim lIndex As Long, aVName$, lVName As Long, lType As Long, aData$, lData As Long

lVName = 100
aVName$ = Space$(lVName)
aData$ = Space$(1000)
Do Until lRet = ERROR_NO_MORE_ITEMS
lVName = 100
lData = 1000
lIndex = lIndex + 1
lRet = RegEnumValue(hKey, lIndex, aVName$, lVName, 0, lType, aData$, lData)
List1.AddItem Left(aData$, InStr(aData$, Chr(0)) - 1)
Loop
lRet = RegCloseKey(hKey)
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧