next j
next i
end if
if countvalue <> 0 then
redim valuename(countvalue - 1) as string ' 重新定义数组, 使用数组大小与注册表关键字的子键数量匹配
redim valuetype(countvalue - 1) as long ' 重新定义数组, 使用数组大小与注册表关键字的子键数量匹配
for i = 0 to countvalue - 1
valuename(i) = space(255)
l = 255
regenumvalue hkey, i, byval valuename(i), l, 0, valuetype(i), byval 0&, byval 0&
valuename(i) = left(valuename(i), l)
next i
' 下面的二重循环对字符串数组进行冒泡排序
for i = 0 to ubound(valuename)
for j = i + 1 to ubound(valuename)
if valuename(i) > valuename(j) then
s = valuename(i)
valuename(i) = valuename(j)
valuename(j) = s
end if
next j
next i
end if
' 关闭注册表关键字...
regclosekey hkey
getkeyinfo = true ' 返回函数值
end function
'-------------------------------------------------------------------------------------------------------------
'- 导出注册表关键字的值
'- 参数说明: keyroot--根类型, keyname--子项名称, filename--导出的文件路径及文件名(原始数据库格式)
'-------------------------------------------------------------------------------------------------------------
public function savekey(keyroot as keyroot, keyname as string, filename as string) as boolean
on error resume next
dim lpattr as security_attributes ' 注册表安全类型
lpattr.nlength = 50 ' 设置安全属性为缺省值...
lpattr.lpsecuritydescriptor = 0 ' ...
lpattr.binherithandle = true ' ...
if enableprivilege(se_backup_name) = false then
savekey = false
exit function
end if
success = regopenkeyex(keyroot, keyname, 0&, key_all_access, hkey)
if success <> 0 then
savekey = false