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.

  • 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 sub-key.
    • getSubKeyNames

      public static String[] getSubKeyNames(RegistryRoot root, 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.
    • 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 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 successful or not.
      See Also:
    • restoreKey

      public static boolean restoreKey(RegistryRoot root, String keyName, 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:
    • 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 sub-key.
      registryView - the registry view used on 64-bit systems.
    • getSubKeyNames

      public static String[] getSubKeyNames(RegistryRoot root, String keyName, RegistryView registryView)
      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.
      registryView - the registry view used on 64-bit systems.
      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.
    • 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 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.
      registryView - the registry view used on 64-bit systems.
      Returns:
      whether the operation was successful or not.
      See Also:
    • restoreKey

      public static boolean restoreKey(RegistryRoot root, String keyName, String fileName, RegistryView registryView)
      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.
      registryView - the registry view used on 64-bit systems.
      Returns:
      whether the operation was successful or not.
      See Also: