/** * Delete a registry value. * * @param root * Root key. * @param keyPath * Path to an existing registry key. * @param valueName * Name of the value to delete. */ public static void registryDeleteValue(HKEY root, String keyPath, String valueName) { registryDeleteValue(root, keyPath, valueName, 0); }
/** * Delete a registry key * * @param keyPath * @param keyName */ @Override public void deleteKey( String rootKey, String keyPath, String keyName ) { log.info("Delete key: " + getDescription(rootKey, keyPath, keyName)); try { Advapi32Util.registryDeleteValue(getHKey(rootKey), keyPath, keyName); } catch (RuntimeException re) { throw new RegistryOperationsException("Couldn't delete registry key. " + getDescription(rootKey, keyPath, keyName), re); } }
/** * Delete a registry value. * * @param root * Root key. * @param keyPath * Path to an existing registry key. * @param valueName * Name of the value to delete. */ public static void registryDeleteValue(HKEY root, String keyPath, String valueName) { HKEYByReference phkKey = new HKEYByReference(); int rc = Advapi32.INSTANCE.RegOpenKeyEx(root, keyPath, 0, WinNT.KEY_READ | WinNT.KEY_WRITE, phkKey); if (rc != W32Errors.ERROR_SUCCESS) { throw new Win32Exception(rc); } try { registryDeleteValue(phkKey.getValue(), valueName); } finally { rc = Advapi32.INSTANCE.RegCloseKey(phkKey.getValue()); if (rc != W32Errors.ERROR_SUCCESS) { throw new Win32Exception(rc); } } }
/** * Delete a registry value. * * @param root * Root key. * @param keyPath * Path to an existing registry key. * @param valueName * Name of the value to delete. * @param samDesiredExtra * Registry key security and access rights to be requested in addition to WinNT.KEY_READ and WinNT.KEY_WRITE. * (e.g WinNT.KEY_WOW64_32KEY or WinNT.KEY_WOW64_64KEY to force 32bit or 64bit registry access.) */ public static void registryDeleteValue(HKEY root, String keyPath, String valueName, int samDesiredExtra) { HKEYByReference phkKey = new HKEYByReference(); int rc = Advapi32.INSTANCE.RegOpenKeyEx(root, keyPath, 0, WinNT.KEY_READ | WinNT.KEY_WRITE | samDesiredExtra, phkKey); if (rc != W32Errors.ERROR_SUCCESS) { throw new Win32Exception(rc); } try { registryDeleteValue(phkKey.getValue(), valueName); } finally { rc = Advapi32.INSTANCE.RegCloseKey(phkKey.getValue()); if (rc != W32Errors.ERROR_SUCCESS) { throw new Win32Exception(rc); } } }