vb的这段代码什么意思

来源:百度知道 编辑:UC知道 时间:2024/07/02 04:48:05
这是操作注册表程序中的一段,别人写的,请重点给我解释下 If RegEnumKeyEx这句的意思
' -------------------------------------------
' Function name: GetKeys
' -------------------------------------------
' Syntax: GetKeys HKey, Path, ListBoxName
' Exapmle: GetKeys HKEY_LOCAL_MACHINE, "Software\NewKey", Form1.List1
' -------------------------------------------

Function GetKeys(ByVal H_Key As Long, ByVal HSubDir As String, lstList As ListBox)
Dim HKey As Long, Counter As Long, sSave As String

RegOpenKey H_Key, HSubDir, HKey
Do
sSave = String(255, 0)
If RegEnumKeyEx(HKey, Counter, sSave, 255, 0, vbNullString, ByVal 0&, ByVal 0&) <> 0 Then Exit Do
lstList.AddItem StripTerminator(sSave)
Counter = Counter + 1
Loop
RegCloseKey HKey
End Function

RegEnumKeyEx 是可以枚举指定注册表项下方的全部子项。返回long类型,0表示成功,其它值代表不成功(每个值也代表一个错误代码)。

HKey:一个已打开项的句柄,或者指定一个标准项名
Counter:欲获取的子项的索引。第一个子项的索引编号为零
sSave:用于装载指定索引处项名的一个缓冲区
255:用于装载lpName缓冲区的实际长度(包括空字符)。一旦返回,它会设为实际装载到lpName缓冲区的字符数量
0:一般不使用 置空为0
vbNullString:项使用的类名,固定常数 即这里就是vbNullString。
ByVal 0&:用于装载vbNullString缓冲区长度的一个变量。一旦返回,它会设为实际装载到缓冲区的字符数量
ByVal 0&) :枚举子项上一次修改的时间 。

这段代码实现将(H_Key, HSubDir, HKey
)注册表项读取到ListBox中 并列表显示。