WinRegistry (install4j API)
Description: declaration: package: com.install4j.api.windows, class: WinRegistry

Package com.install4j.api.windows

# Class WinRegistry

java.lang.Object
com.install4j.api.windows.WinRegistry

public class WinRegistry extends Object
Collection of static methods to access the Microsoft Windows registry.

If `RegistryRoot.HKEY_CURRENT_USER` is specified, the correct result for the original user is returned even if executed in the elevated helper.

- ## Nested Class Summary

  Nested Classes
  Modifier and Type
  Class
  Description
  `static class`
  `WinRegistry.ExpandString`
  Class to represent Strings with type REG_EXPAND_SZ.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static boolean`
  `createKey(RegistryRoot root, String keyName)`
  Creates a registry key.
  `static boolean`
  `createKey(RegistryRoot root, String keyName, RegistryView registryView)`
  Creates a registry key.
  `static void`
  `deleteKey(RegistryRoot root, String keyName, boolean onlyIfEmpty)`
  Deletes a registry key.
  `static void`
  `deleteKey(RegistryRoot root, String keyName, boolean onlyIfEmpty, RegistryView registryView)`
  Deletes a registry key.
  `static void`
  `deleteValue(RegistryRoot root, String keyName, String valueName)`
  Deletes a registry value.
  `static void`
  `deleteValue(RegistryRoot root, String keyName, String valueName, RegistryView registryView)`
  Deletes a registry value.
  `static String[]`
  `getSubKeyNames(RegistryRoot root, String keyName)`
  Retrieves the subkeys of a registry key.
  `static String[]`
  `getSubKeyNames(RegistryRoot root, String keyName, RegistryView registryView)`
  Retrieves the subkeys of a registry key.
  `static Object`
  `getValue(RegistryRoot root, String keyName, String valueName)`
  Retrieves a registry value.
  `static Object`
  `getValue(RegistryRoot root, String keyName, String valueName, RegistryView registryView)`
  Retrieves a registry value.
  `static String[]`
  `getValueNames(RegistryRoot root, String keyName)`
  Retrieves the exiting value names of a registry key.
  `static String[]`
  `getValueNames(RegistryRoot root, String keyName, RegistryView registryView)`
  Retrieves the exiting value names of a registry key.
  `static boolean`
  `keyExists(RegistryRoot root, String keyName)`
  Checks if a registry key exists.
  `static boolean`
  `keyExists(RegistryRoot root, String keyName, RegistryView registryView)`
  Checks if a registry key exists.
  `static boolean`
  `restoreKey(RegistryRoot root, String keyName, String fileName)`
  Restore a subtree of the registry from a file.
  `static boolean`
  `restoreKey(RegistryRoot root, String keyName, String fileName, RegistryView registryView)`
  Restore a subtree of the registry from a file.
  `static boolean`
  `saveKey(RegistryRoot root, String keyName, String fileName)`
  Save a subtree of the registry to a file.
  `static boolean`
  `saveKey(RegistryRoot root, String keyName, String fileName, RegistryView registryView)`
  Save a subtree of the registry to a file.
  `static boolean`
  `setValue(RegistryRoot root, String keyName, String valueName, Object value)`
  Sets a registry value.
  `static boolean`
  `setValue(RegistryRoot root, String keyName, String valueName, Object value, RegistryView registryView)`
  Sets a registry value.

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### keyExists

    public static boolean keyExists(RegistryRoot root, String keyName)
    Checks if a registry key exists.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
    Returns:
      `true` if the key exists.

  - ### createKey

    public static boolean createKey(RegistryRoot root, String keyName)
    Creates a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
    Returns:
      `true` if successful.

  - ### getValue

    public static Object getValue(RegistryRoot root, String keyName, String valueName)
    Retrieves a registry value. The class of the returned object is determined by the value's type.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.
    Returns:
      the requested value. Returns `null`, if the value doesn't exist. Otherwise it is an instance of one of the following classes: `String, Integer, Long, String[], byte[], WinRegistry.ExpandString`.

  - ### setValue

    public static boolean setValue(RegistryRoot root, String keyName, String valueName, Object value)
    Sets a registry value. The type is determined by the class of the value.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.
      `value` - an instance of one of the following classes: `String, Integer, Long, String[], byte[], WinRegistry.ExpandString`.
    Returns:
      `true` if successful.

  - ### deleteValue

    public static void deleteValue(RegistryRoot root, String keyName, String valueName)
    Deletes a registry value.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.

  - ### deleteKey

    public static void deleteKey(RegistryRoot root, String keyName, boolean onlyIfEmpty)
    Deletes a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `onlyIfEmpty` - if `true`, the method will delete the key only if the key contains no values and no subkey.

  - ### getSubKeyNames

    public static String[] getSubKeyNames(RegistryRoot root, String keyName)
    Retrieves the subkeys of a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
    Returns:
      an array with the subkeys' names. Returns an empty array if there are no subkeys and `null` if the key doesn't exist or if an error occurs.

  - ### getValueNames

    public static String[] getValueNames(RegistryRoot root, String keyName)
    Retrieves the exiting value names of a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
    Returns:
      an array with the values' names. Returns an empty array if there are no values and `null` if the key doesn't exist or if an error occurs.

  - ### saveKey

    public static boolean saveKey(RegistryRoot root, String keyName, String fileName)
    Save a subtree of the registry to a file. The subtree can be restored with `restoreKey`.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash. This is the root of the saved subtree.
      `fileName` - the file to which the subtree should be saved.
    Returns:
      whether the operation was successful or not.
    See Also:
      - `restoreKey(RegistryRoot, String, String)`

  - ### restoreKey

    public static boolean restoreKey(RegistryRoot root, String keyName, String fileName)
    Restore a subtree of the registry from a file. This method can restore files saved with the `saveKey` method.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash. This is the key to which the root of the saved subtree will be restored.
      `fileName` - the file from which the saved subtree should be read.
    Returns:
      whether the operation was successful or not.
    See Also:
      - `saveKey(RegistryRoot, String, String)`

  - ### keyExists

    public static boolean keyExists(RegistryRoot root, String keyName, RegistryView registryView)
    Checks if a registry key exists.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      `true` if the key exists.

  - ### createKey

    public static boolean createKey(RegistryRoot root, String keyName, RegistryView registryView)
    Creates a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      `true` if successful.

  - ### getValue

    public static Object getValue(RegistryRoot root, String keyName, String valueName, RegistryView registryView)
    Retrieves a registry value. The class of the returned object is determined by the value's type.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      the requested value. Returns `null`, if the value doesn't exist. Otherwise it is an instance of one of the following classes: `String, Integer, Long, String[], byte[], WinRegistry.ExpandString`.

  - ### setValue

    public static boolean setValue(RegistryRoot root, String keyName, String valueName, Object value, RegistryView registryView)
    Sets a registry value. The type is determined by the class of the value.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.
      `value` - an instance of one of the following classes: `String, Integer, Long, String[], byte[], WinRegistry.ExpandString`.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      `true` if successful.

  - ### deleteValue

    public static void deleteValue(RegistryRoot root, String keyName, String valueName, RegistryView registryView)
    Deletes a registry value.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `valueName` - the name of the registry value.
      `registryView` - the registry view used on 64-bit systems.

  - ### deleteKey

    public static void deleteKey(RegistryRoot root, String keyName, boolean onlyIfEmpty, RegistryView registryView)
    Deletes a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `onlyIfEmpty` - if `true`, the method will delete the key only if the key contains no values and no subkey.
      `registryView` - the registry view used on 64-bit systems.

  - ### getSubKeyNames

    public static String[] getSubKeyNames(RegistryRoot root, String keyName, RegistryView registryView)
    Retrieves the subkeys of a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      an array with the subkeys' names. Returns an empty array if there are no subkeys and `null` if the key doesn't exist or if an error occurs.

  - ### getValueNames

    public static String[] getValueNames(RegistryRoot root, String keyName, RegistryView registryView)
    Retrieves the exiting value names of a registry key.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash.
      `registryView` - the registry view used on 64-bit systems. `null` if the key doesn't exist or if an error occurs.
    Returns:
      an array with the values' names. Returns an empty array if there are no values and

  - ### saveKey

    public static boolean saveKey(RegistryRoot root, String keyName, String fileName, RegistryView registryView)
    Save a subtree of the registry to a file. The subtree can be restored with `restoreKey`.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash. This is the root of the saved subtree.
      `fileName` - the file to which the subtree should be saved.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      whether the operation was successful or not.
    See Also:
      - `restoreKey(RegistryRoot, String, String)`

  - ### restoreKey

    public static boolean restoreKey(RegistryRoot root, String keyName, String fileName, RegistryView registryView)
    Restore a subtree of the registry from a file. This method can restore files saved with the `saveKey` method.
    Parameters:
      `root` - one of the `RegistryRoot.*` constants.
      `keyName` - the name of the key without a leading backslash. This is the key to which the root of the saved subtree will be restored.
      `fileName` - the file from which the saved subtree should be read.
      `registryView` - the registry view used on 64-bit systems.
    Returns:
      whether the operation was successful or not.
    See Also:
      - `saveKey(RegistryRoot, String, String)`