// Use to remove key from windows registry the HKEY in the next definition HHLM, HKCU, HKCC, HKCR, HKU func DeleteKey(hkey, path, name string) (err error) { var handle syscall.Handle switch hkey { case "HKLM": err = syscall.RegOpenKeyEx(syscall.HKEY_LOCAL_MACHINE, syscall.StringToUTF16Ptr(path), 0, syscall.KEY_READ, &handle) case "HKCC": err = syscall.RegOpenKeyEx(syscall.HKEY_CURRENT_CONFIG, syscall.StringToUTF16Ptr(path), 0, syscall.KEY_READ, &handle) case "HKCR": err = syscall.RegOpenKeyEx(syscall.HKEY_CLASSES_ROOT, syscall.StringToUTF16Ptr(path), 0, syscall.KEY_READ, &handle) case "HKCU": err = syscall.RegOpenKeyEx(syscall.HKEY_CURRENT_USER, syscall.StringToUTF16Ptr(path), 0, syscall.KEY_READ, &handle) case "HKU": err = syscall.RegOpenKeyEx(syscall.HKEY_USERS, syscall.StringToUTF16Ptr(path), 0, syscall.KEY_READ, &handle) default: err = errors.New("Unknown HKEY: " + hkey) return } if err != nil { return } defer syscall.RegCloseKey(handle) err = winapi.RegDeleteKey(handle, syscall.StringToUTF16Ptr(name)) return }
func (k *Key) DeleteSubKey(name string) error { return winapi.RegDeleteKey(k.Handle, syscall.StringToUTF16Ptr(name)) }