呵呵,这个偶是支持的 你需要依次枚举键值和子键 参考 API 函数: RegEnumKeyEx RegOpenKeyEx RegCloseKey
RegDeleteKey RegDeleteValue RegQueryValueEx
Dim phkRet As Long Dim Index As Long, Name As String, lName As Long, lReserved As Long, Class As String, lClass As Long, LWT As FILETIME Dim lRet As Long Dim Keys As String, TempKeys As String Static Num As Long lReserved = 0& Index = 0 hKey = HKEY_CLASSES_ROOT lRet = RegOpenKey(hKey, SubKey, phkRet) If lRet = ERROR_SUCCESS Then Do DoEvents Name = String(255, Chr(0)) lName = Len(Name) lRet = RegEnumKeyEx(phkRet, Index, Name, lName, lReserved, Class, lClass, LWT) If lRet = ERROR_SUCCESS Then Keys = "HKEY_CLASSES_ROOT\" & Name ' List1.AddItem Keys
Label1.Caption = Keys If InStr(1, Name, "esri") > 0 Then 'MsgBox Name '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim LDelRet As Long Dim hDelkRet As Long LDelRet = RegOpenKey(hKey, Name, hDelkRet) List2.AddItem Name RegDeleteKey hDelkRet, Name '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ' Exit Do End If Num = Num + 1 Label2.Caption = Num Else Exit Do End If Index = Index + 1 Loop While lRet = ERROR_SUCCESS End If Call RegCloseKey(phkRet)我用上面这段代码怎么删除不掉呢???
删除这个键之前应该先RegCloseKey吧,LDelRet句柄没有释放。
上面写错了,hDelkRet没有释放。
在哪释放呀??删除之前,还是在删除之后?? '''''''''''''''''''''''''''''''''''''''''''''''''''''''''' Dim LDelRet As Long Dim hDelkRet As Long LDelRet = RegOpenKey(hKey, Name, hDelkRet) List2.AddItem Name RegDeleteKey hDelkRet, Name ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
你需要依次枚举键值和子键
参考 API 函数:
RegEnumKeyEx
RegOpenKeyEx
RegCloseKey
RegDeleteValue
RegQueryValueEx
Dim Index As Long, Name As String, lName As Long, lReserved As Long, Class As String, lClass As Long, LWT As FILETIME
Dim lRet As Long
Dim Keys As String, TempKeys As String
Static Num As Long
lReserved = 0&
Index = 0
hKey = HKEY_CLASSES_ROOT
lRet = RegOpenKey(hKey, SubKey, phkRet)
If lRet = ERROR_SUCCESS Then
Do
DoEvents
Name = String(255, Chr(0))
lName = Len(Name)
lRet = RegEnumKeyEx(phkRet, Index, Name, lName, lReserved, Class, lClass, LWT)
If lRet = ERROR_SUCCESS Then
Keys = "HKEY_CLASSES_ROOT\" & Name
' List1.AddItem Keys
Label1.Caption = Keys
If InStr(1, Name, "esri") > 0 Then
'MsgBox Name
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim LDelRet As Long
Dim hDelkRet As Long
LDelRet = RegOpenKey(hKey, Name, hDelkRet)
List2.AddItem Name
RegDeleteKey hDelkRet, Name
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Exit Do
End If
Num = Num + 1
Label2.Caption = Num
Else
Exit Do
End If
Index = Index + 1
Loop While lRet = ERROR_SUCCESS
End If
Call RegCloseKey(phkRet)我用上面这段代码怎么删除不掉呢???
Dim LDelRet As Long
Dim hDelkRet As Long
LDelRet = RegOpenKey(hKey, Name, hDelkRet)
List2.AddItem Name
RegDeleteKey hDelkRet, Name
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''