These settings will help you portablize an application's registry usage and optimize an already portablized application's registry usage.
By default, all of the registry accesses made by an application are not redirected into a portable registry. The following sections allow you to modify that behavior.
There are several substitution tokens that may be used within any of the settings requiring a file system path or registry key.
Launched application related tokens are %appdrive%, e.g. H:, %appdir%, e.g. H:\Portables\Firefox, and %appname%, e.g. Firefox.
And environment variable names enclosed within percent signs may be used as well, such as %ComputerName% or %UserName%. You are responsible for ensuring that the environment variable is available on all versions of Windows on which the configuration ini will be used.
The [Registry] section
Setting | Description |
---|---|
Use |
Set to 1 to specify registry redirection. By default, this turns on registry redirection for the entire system registry. Use the RegistryExclude and RegistryInclude sections to modify this behavior. It also turns on portable registry storage for any registry data that gets redirected. Use the PortableRegExclude and PortableRegInclude sections to modify this behavior. Set to 0 to specify no registry redirection. Defaults to the application's JauntePE launcher's RedirReg setting. |
Data |
Some full path, or current configuration ini relative path, which specifies where the portablized data reside. Defaults to the application's JauntePE launcher's JPERuntimeReg setting. |
Ini |
Some full path, or current configuration ini relative path, which specifies where to go to get the rest of the registry-related runtime settings. This is useful if you need to point an application "back" to the ini used during the application install. It may also be used as a way to group applications together under a application-group-specific ini. If used, this is the only setting interpreted within a given configuration ini. If not used, all registry portablization settings are taken from the current configuration ini. |
The [Redirection] section
Setting | Description |
---|---|
FillRegistry |
Set to 1 to specify that temporary registry entries are added to complete the portable registry hierarchy. Set to 0 to specify no temporary registry entries are added to complete the portable registry hierarchy. Defaults to the application's JauntePE launcher's setting. |
MemRegistry |
Set to 0 to turn off in-memory portable registry usage. An immediate read and write text-based .reg file is used. Set to 1 to turn on in-memory portable registry usage for use with an immediate write, text-based .reg file (equal to the -m command line switch). Set to 2 to turn on in-memory portable registry usage for use with an application-end write, text-based .reg file (equal to the -M and -Mt command line switches). Set to 3 to turn on in-memory portable registry usage for use with an application-end write, binary-based .reg file (equal to the -Mb command line switch). Set to 4 to turn on in-memory portable registry usage for use with a no-write text-based .reg file (equal to the -Mn command line switch). Set to 5 to turn on in-memory portable registry usage for use with a no-write binary-based .reg file (equal to the -Mn command line switch). Defaults to the application's JauntePE launcher's MemRegistry setting. |
RegIgnDel |
Set to 1 to specify that the JauntePE runtime should temporarily add any deleted portable registry keys to the RegistryIgnore list. This prevents the application from later finding that the same key exists in the system registry. The key is removed from the RegistryIgnore list when and if it is recreated in the portable registry. This setting was put in place as a way to prevent certain applications from getting into an infinite loop of: deleting a key, checking to see if the delete worked, only to find the system key still available, and then repeating the processz. Set to 0 to specify that the JauntePE runtime should not temporarily add any deleted portable registry keys to the RegistryIgnore list. Defaults to 0 (there is no equivalent launch setting.) |
RegMerge |
Set to 1 to specify that the JauntePE runtime should process application registry key and key value browsing requests against both the portable registry as well as the system registry, merging the results together so that it appears to the application as if there is only one registry in use. Set to 0 to specify that the JauntePE runtime should process application registry key and key value browsing requests against the portable registry first, and if no matching key or key value is found, then against the system registry. Defaults to 0 (there is no equivalent launch setting.) |
RegTokens |
Set to 0 to turn off portable registry stored special folder path tokenization. Set to 1 to turn on portable registry stored special folder path tokenization as they are read from or written to the portable registry .reg file. If MemRegistry is 0, the paths are detokenized when read and tokenized when written. If MemRegistry is 1, the paths are detokenized at application startup and tokenized when written. If MemRegistry is greater than 1, the paths are detokenized at application startup and tokenized at application shutdown, which slows down startup and shutdown but speeds up normal usage over a RegTokens value of 2. Set to 2 to turn on portable registry stored special folder path tokenization as they are gotten from or put into the in-memory portable registry storage. If MemRegistry is 0, the feature behaves as if RegTokens were 1. If MemRegistry is 1, the paths are detokenized "on the fly" and tokenized when written. If MemRegistry is greater than 1, the paths are tokenized and detokenized "on the fly" as they are updated and retrieved by the application, which slows down normal usage but speeds up startup and shutdown over a RegTokens value of 1. File system portablization must also be enabled before a portable registry stored special folder path is considered for tokenization. Once turned on, tokenization occurs for all portable registry stored paths. You can limit the tokenization to a specified set of stored paths through the use of the RegistryTokenExclude and RegistryTokenInclude sections. The tokenization will also only be applied to single "string" registry values, e.g., values of type REG_SZ and REG_EXPAND_SZ. Special folder paths stored as binary data types are not considered for tokenization. Also, please note that this is an "expensive" feature to use, since all tokenizable portable registry key values must be searched to see if they contain any of the file system's special folder paths. So limiting the tokenization to only those registry keys that need it is advisable. JPE Tokenizer may be used to simplify this task. Defaults to 0 (there is no equivalent launch setting.) |
The [RegistryExclude] section
In this section you specify the registry keys that you don't want to be portablized. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command.
There are two ways to specify the section's contents. The first is to enter an ascending, consecutively numbered list of registry keys that you don't want to be portablized. The second is to enter 1=* as the only entry, which tells JauntePE to exclude all registry keys from being portablized.
You then optionally enter a list of registry keys that you do want to be portablized via the RegistryInclude section.
Here is an example that is used in the Normal2.ini configuration ini that portablizes all registry changes except for those made to and within the "low level" registry keys.
[RegistryExclude]
1=HKEY_LOCAL_MACHINE\Hardware
2=HKEY_LOCAL_MACHINE\Security
3=HKEY_LOCAL_MACHINE\System
4=HKEY_PERFORMANCE_DATA
5=HKEY_DYN_DATA
The [RegistryInclude] section
In this section you specify the registry keys that you want to be portablized. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command. The section should contain an ascending, consecutively numbered list of registry keys.
Since all of the registry keys are portablized by default - once the Use setting has been turned on - you only make use of this section when you have 1=* as the only entry in the RegistryExclude section, or when you have subkeys of one or more of that section's keys that you want to be portablized.
Here is an example that only portablizes changes made to the current application's data, which are assumed, as is somewhat typical, to be kept within an HKCU\Software subkey.
[RegistryExclude]
1=*
[RegistryInclude]
1=HKEY_CURRENT_USER\Software\%appname%
Here is an example that doesn't portablize low level changes, portablizes changes made to the current user's non-Microsoft data, and also portablizes changes made to the settings for any Microsoft "applet," e.g. FreeCell, Paint, RegEdit, or WordPad. Changes to data stored in other often used Microsoft keys are not portablized, however, including any changes made within the Windows subkey.
[RegistryExclude]
1=HKEY_LOCAL_MACHINE\Hardware
2=HKEY_LOCAL_MACHINE\Security
3=HKEY_LOCAL_MACHINE\System
4=HKEY_PERFORMANCE_DATA
5=HKEY_DYN_DATA
6=HKEY_CURRENT_USER\Software\Microsoft
[RegistryInclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets
The [RegistryIgnore] section
In this section you specify the registry keys that you want to hide from the application as existing in the system registry. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command. The section should contain an ascending, consecutively numbered list of registry keys.
This list of registry keys is used by JauntePE only after it has been determined that a given key is to be portablized, and that the key does not exist in the portable registry. Then, if the given key is a "RegistryIgnore" key, the application is told that the key does not exist, even if it does exist in the system registry. In practice, putting keys into this section prevents an application from using the contents of any like system registry keys.
Here is an example that prevents an application from using any settings from a "normally installed" version of the same application. This is handy if you are portably running an application for the first time and you want the portable registry populated with the application's default settings as opposed to those it might otherwise find in the system registry. It is also handy for those applications that indicate default usage by not having the setting stored in the registry. The application's data is assumed, as is somewhat typical, to be kept within an HKCU\Software subkey.
[RegistryExclude]
1=*
[RegistryInclude]
1=HKEY_CURRENT_USER\Software\%appname%
[RegistryIgnore]
1=HKEY_CURRENT_USER\Software\%appname%
The [PortableRegExclude] section
In this section you specify the portablized registry keys that you don't want to be stored in the portable registry. They are instead treated as temporary and only kept within the in-memory registry and never written to disk. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command.
IMPORTANT NOTE: This section is only utilized if the in-memory registry is in use, i.e., if MemRegistry is greater than 0.
There are two ways to specify the section's contents. The first is to enter an ascending, consecutively numbered list of portablized registry keys that you don't want to be portably stored. The second is to enter 1=* as the only entry, which tells JauntePE to exclude all portablized registry keys from being portably stored.
You then optionally enter a list of portablized registry keys that you do want to be portably stored via the PortableRegInclude section.
Here is an example that is used in the Normal2.ini configuration ini that keeps changes to most of the unwanted Microsoft registry data from being stored in the portable registry.
[PortableRegExclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer
2=HKEY_CURRENT_USER\Software\Microsoft\Windows
3=HKEY_CURRENT_USER\Software\Microsoft\Windows NT
The [PortableRegInclude] section
In this section you specify the portablized registry keys that you want to be portably stored. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command. The section should contain an ascending, consecutively numbered list of portablized registry keys.
IMPORTANT NOTE: This section is only utilized if the in-memory registry is in use, i.e., if MemRegistry is greater than 0.
Since all of the portablized registry keys are portably stored by default, you only make use of this section when you have 1=* as the only entry in the PortableRegExclude section, or when you have subkeys of one or more of that section's keys that you want to be portably stored.
Here is an example that is used in the Normal2.ini configuration ini that keeps changes to most of the unwanted Microsoft registry data from being stored in the portable registry, while allowing changes to the Microsoft "applets" data to be portably stored.
[PortableRegExclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer
2=HKEY_CURRENT_USER\Software\Microsoft\Windows
3=HKEY_CURRENT_USER\Software\Microsoft\Windows NT
[PortableRegInclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets
The [RegistryTokenExclude] section
In this section you specify the portablized registry keys that you don't want to be tokenizable in the portable registry. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command.
IMPORTANT NOTE: This section is only utilized if portable registry stored special folder path tokenization is in use, i.e., if RegTokens is greater than 0.
There are two ways to specify the section's contents. The first is to enter an ascending, consecutively numbered list of portablized registry keys that you don't want to be tokenizable. The second is to enter 1=* as the only entry, which tells JauntePE to exclude all portablized registry keys from being tokenizable.
You then optionally enter a list of portablized registry keys that you do want to be tokenizable via the RegistryTokenInclude section.
Here is an example that is used to tokenize all special folder paths except those contained within any "classes" or "system" registry keys, which may contain system specific paths that you may not want to be tokenized.
[RegistryTokenExclude]
1=HKEY_CLASSES_ROOT
2=HKEY_LOCAL_MACHINE
The [RegistryTokenInclude] section
In this section you specify the portablized registry keys that you want to be tokenizable in the portable registry. The keys should be complete paths without a final backslash, i.e., like the ones you get out of RegEdit via its "Edit->Copy Key Name" command. (There is a "special case" exception to this requirement that is given in the second example below.) The section should contain an ascending, consecutively numbered list of portablized registry keys.
IMPORTANT NOTE: This section is only utilized if portable registry stored special folder path tokenization is in use, i.e., if RegTokens is greater than 0.
Since all of the portablized registry keys are tokenizable by default, you only make use of this section when you have 1=* as the only entry in the RegistryTokenExclude section, or when you have subkeys of one or more of that section's keys that you want to be tokenizable.
Here is an example that is used to tokenize all special folder paths stored for use in the Microsoft Wordpad application's "most recently used files" list.
[RegistryTokenExclude]
1=*
[RegistryTokenInclude]
1=HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Applets\Wordpad\Recent File List
Here is an example that is used to tokenize the first 4 special folder paths stored by the MetaPad application's "most recently used files" list, while leaving all other paths alone. This example makes use of "special case" registry paths, which consist of a normal path followed by a backslash followed by a quoted value name (except for the default value, which is represented with just the @ character.) These registry paths are useful if the special folder paths you wish to tokenize are stored in values under a registry key that also contains other values holding special folder paths that you don't wish to tokenize.
[RegistryTokenExclude]
1=*
[RegistryTokenInclude]
1=HKEY_CURRENT_USER\Software\MetaPad\"mru_1"
2=HKEY_CURRENT_USER\Software\MetaPad\"mru_2"
3=HKEY_CURRENT_USER\Software\MetaPad\"mru_3"
4=HKEY_CURRENT_USER\Software\MetaPad\"mru_4"