21. august 2001 - 17:31
#4
kan du ikke lige skrive hvor jeg finder, hvordan mit VB-program kan slette et evt. (.kvp) format inden jeg registrer \"mit\" format vha af mit vb-prog.??
21. august 2001 - 18:20
#5
I declarations (udover det du har i forvejen):
Public Const KEY_ENUMERATE_SUB_KEYS = &H8
Declare Function RegDeleteKey Lib \"advapi32.dll\" Alias \"RegDeleteKeyA\" (ByVal hKey As Long, ByVal lpSubKey As String) As Long
Declare Function RegEnumKeyEx Lib \"advapi32.dll\" Alias \"RegEnumKeyExA\" (ByVal hKey As Long, ByVal dwIndex As Long, ByVal lpName As String, lpcbName As Long, lpReserved As Long, ByVal lpClass As String, lpcbClass As Long, lpftLastWriteTime As FILETIME) As Long
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
Declare Function RegDeleteValue Lib \"advapi32.dll\" Alias \"RegDeleteValueA\" (ByVal hKey As Long, ByVal lpValueName As String) As Long
I dit modul tilføjer du denne sub:
Public Sub delExt(ext As String)
Dim res As Long
Dim hKey As Long
Dim keyName As String
Dim className As String
Dim keyLen As Long
Dim classLen As Long
Dim index As Long
Dim ftime As FILETIME
res = RegOpenKeyEx(HKEY_CLASSES_ROOT, ext, 0, KEY_ENUMERATE_SUB_KEYS, hKey)
If Not res = 0 Then Exit Sub
index = 0
While res = 0
keyName = Space(255)
className = Space(255)
keyLen = 255
classLen = 255
res = RegEnumKeyEx(hKey, index, keyName, keyLen, ByVal 0, className, classLen, ftime)
index = index + 1
keyName = Left(keyName, keyLen)
a = RegDeleteValue(hKey, keyName)
Wend
RegCloseKey hKey
RegDeleteKey HKEY_CLASSES_ROOT, ext
End Sub
For at slette .kvp formatet udfører du så bare:
delext (\".kvp\")
21. august 2001 - 18:21
#6
Hov, du skal også huske at definere FILETIME typen:
Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type