Package com.install4j.api.windows
Class WinRegistry
java.lang.Object
com.install4j.api.windows.WinRegistry
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
Modifier and TypeClassDescriptionstatic class
Class to represent Strings with type REG_EXPAND_SZ. -
Method Summary
Modifier and TypeMethodDescriptionstatic 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 sub keys of a registry key.static String[]
getSubKeyNames
(RegistryRoot root, String keyName, RegistryView registryView) Retrieves the sub keys 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.
-
Method Details
-
keyExists
Checks if a registry key exists.- Parameters:
root
- one of theRegistryRoot.*
constants.keyName
- the name of the key without a leading backslash.- Returns:
true
if the key exists.
-
createKey
Creates a registry key.- Parameters:
root
- one of theRegistryRoot.*
constants.keyName
- the name of the key without a leading backslash.- Returns:
true
if successful.
-
getValue
Retrieves a registry value. The class of the returned object is determined by the value's type.- Parameters:
root
- one of theRegistryRoot.*
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
Sets a registry value. The type is determined by the class of the value.- Parameters:
root
- one of theRegistryRoot.*
constantskeyName
- 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
Deletes a registry value.- Parameters:
root
- one of theRegistryRoot.*
constants.keyName
- the name of the key without a leading backslash.valueName
- the name of the registry value.
-
deleteKey
Deletes a registry key.- Parameters:
root
- one of theRegistryRoot.*
constants.keyName
- the name of the key without a leading backslash.onlyIfEmpty
- iftrue
, the method will delete the key only if the key contains no values and no sub-key.
-
getSubKeyNames
Retrieves the sub keys of a registry key.- Parameters:
root
- one of theRegistryRoot.*
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
Retrieves the exiting value names of a registry key.- Parameters:
root
- one of theRegistryRoot.*
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
Save a subtree of the registry to a file. The subtree can be restored withrestoreKey
.- Parameters:
root
- one of theRegistryRoot.*
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
Restore a subtree of the registry from a file. This method can restore files saved with thesaveKey
method.- Parameters:
root
- one of theRegistryRoot.*
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:
-
keyExists
Checks if a registry key exists.- Parameters:
root
- one of theRegistryRoot.*
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
Creates a registry key.- Parameters:
root
- one of theRegistryRoot.*
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 theRegistryRoot.*
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 theRegistryRoot.*
constantskeyName
- 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 theRegistryRoot.*
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 theRegistryRoot.*
constants.keyName
- the name of the key without a leading backslash.onlyIfEmpty
- iftrue
, 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
Retrieves the sub keys of a registry key.- Parameters:
root
- one of theRegistryRoot.*
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
Retrieves the exiting value names of a registry key.- Parameters:
root
- one of theRegistryRoot.*
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 withrestoreKey
.- Parameters:
root
- one of theRegistryRoot.*
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
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 thesaveKey
method.- Parameters:
root
- one of theRegistryRoot.*
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:
-