## install4j API documentation

## com.install4j.api.windows
Class WinRegistry

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

    public class WinRegistry

extends java.lang.Object

Collection of static methods to access the Microsoft Windows registry.

Author:
  ej-technologies GmbH

Nested Class Summary
`static class` | `WinRegistry.ExpandString` Class to represent Strings with type REG_EXPAND_SZ.

Method Summary
`static boolean` | `createKey(RegistryRoot root, java.lang.String keyName)` Creates a registry key.
`static void` | `deleteKey(RegistryRoot root, java.lang.String keyName, boolean onlyIfEmpty)` Deletes a registry key.
`static void` | `deleteValue(RegistryRoot root, java.lang.String keyName, java.lang.String valueName)` Deletes a registry value.
`static java.lang.String[]` | `getSubKeyNames(RegistryRoot root, java.lang.String keyName)` Retrieves the sub keys of a registry key.
`static java.lang.Object` | `getValue(RegistryRoot root, java.lang.String keyName, java.lang.String valueName)` Retrieves a registry value.
`static boolean` | `keyExists(RegistryRoot root, java.lang.String keyName)` Checks if a registry key exists.
`static boolean` | `restoreKey(RegistryRoot root, java.lang.String keyName, java.lang.String fileName)` Restore a sub-tree of the registry from a file.
`static boolean` | `saveKey(RegistryRoot root, java.lang.String keyName, java.lang.String fileName)` Save a sub-tree of the registry to a file.
`static boolean` | `setValue(RegistryRoot root, java.lang.String keyName, java.lang.String valueName, java.lang.Object value)` Sets a registry value.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Method Detail

### keyExists

    public static boolean keyExists(RegistryRoot root,
                                    java.lang.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,
                                    java.lang.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 java.lang.Object getValue(RegistryRoot root,
                                            java.lang.String keyName,
                                            java.lang.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, String[], byte[], WinRegistry.ExpandString`.

### setValue

    public static boolean setValue(RegistryRoot root,
                                   java.lang.String keyName,
                                   java.lang.String valueName,
                                   java.lang.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, String[], byte[], WinRegistry.ExpandString`.
  Returns:
    `true` if successful.

### deleteValue

    public static void deleteValue(RegistryRoot root,
                                   java.lang.String keyName,
                                   java.lang.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,
                                 java.lang.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 java.lang.String[] getSubKeyNames(RegistryRoot root,
                                                    java.lang.String keyName)

  Retrieves the sub keys 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 sub keys' names. Returns an empty array if there are no sub keys and `null` if the key doesn't exist or if an error occurs.

### saveKey

    public static boolean saveKey(RegistryRoot root,
                                  java.lang.String keyName,
                                  java.lang.String fileName)

  Save a sub-tree of the registry to a file. The sub-tree 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 sub-tree.
    `fileName` - the file to which the sub-tree should be saved.
  Returns:
    whether the operation was sucessful or not.
  See Also:
    `restoreKey(RegistryRoot, String, String)`

### restoreKey

    public static boolean restoreKey(RegistryRoot root,
                                     java.lang.String keyName,
                                     java.lang.String fileName)

  Restore a sub-tree 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 sub-tree will be restored.
    `fileName` - the file from which the saved sub-tree should be read.
  Returns:
    whether the operation was successful or not.
  See Also:
    `saveKey(RegistryRoot, String, String)`