Private Declare Function RegDeleteValue Lib "advapi32.dll" Alias _
"RegDeleteValueA" (ByVal hKey As Long, ByVal lpValueName As String) 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 RegCloseKey Lib "advapi32.dll" (ByVal hKey As Long) As _ Long Const KEY_WRITE = &H20006 '((STANDARD_RIGHTS_WRITE Or KEY_SET_VALUE Or ' KEY_CREATE_SUB_KEY) And (Not SYNCHRONIZE)) ' Delete a registry value ' ' Return True if successful, False if the value hasn't been found Function DeleteRegistryValue(ByVal hKey As Long, ByVal KeyName As String, _ ByVal ValueName As String) As Boolean Dim handle As Long ' Open the key, exit if not found If RegOpenKeyEx(hKey, KeyName, 0, KEY_WRITE, handle) Then Exit Function ' Delete the value (returns 0 if success) DeleteRegistryValue = (RegDeleteValue(handle, ValueName) = 0) ' Close the handle RegCloseKey handle End Function |