Appendix C: Preference Basics¶
Note
Mac users should refer to the Admin Guide for Macintosh.
Administrators typically configure installers before deployment via preferences and properties so that machines under their control share the requisite settings. Both Acrobat and Reader share a common set of preferences and are similar in their configuration details. Since per-machine user interface configuration is not scalable, Adobe provides two key resources to help you configure Acrobat and Reader prior to deployment:
Customization Wizard: A free utility for configuring the installer prior to deployment. It is offered in both Windows and Mac versions.
Preference Reference: A dictionary of registry and plist preferences.
Fundamentals¶
Before continuing, you should know that:
The tables and examples in most documents use the Windows registry. Naming conventions and paths are relatively similar on Macintosh, Unix, and Linux systems.
The Preference Reference describes 500+ settings.
HKCU settings are end user settings. Most user interface settings have a corresponding HKCU preference.
HKLM preferences will lock a feature and require administrator privileges to modify.
Preference names are case sensitive.
Just because you don’t see the preference doesn’t mean it not in use by the code or cannot be edited/added manually:
Some preferences exist internally and are not visually apparent in the registry until after a feature is used. Subdirectories may also appear as the code is exercised.
Many features are not enabled by default and their related preferences must be manually created.
Many preferences cannot be set thought the UI and must be manually created.
The easiest way to configure the product is to exercise the UI and then manually massage the preferences which don’t have a corresponding UI.
Preference locations¶
Settings for the currently logged-in user:
HKEY_CURRENT_USER\Software\Adobe\(product name)\(version)\
Lockable keys (32 bit):
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\(product name)\(version)\FeatureLockDown\
Lockable keys (64 bit):
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Adobe\(product name)\(version)\FeatureLockdown
Non lockable machine keys:
HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\(product name)\(version)\
Note
Acrobat products use the track name as the version. Thus, the Continuous track will always use “DC” and the Classic track will always use a year such as 2015 or 2017.
Acrobat preferences: Classic track
Data types¶
When adding new keys to the registry, it is critical that you get the Value data and Name fields correct as shown below. Most preferences have a data type prefix. These need to be added in a format the application can recognize.
Prefix |
Data Type |
Registry type |
Description |
---|---|---|---|
a |
atom |
REG_SZ |
The string may be |
b |
bool |
REG_DWORD |
0 (false) or 1 (true). |
c |
cab |
N/A |
Containers that hold keys are preceded by a “c” on Windows. |
i |
int |
REG_DWORD |
An integer. |
s |
string |
REG_BINARY |
ASCII only. |
t |
text |
REG_SZ |
The string may be UTF-8 and can include Unicode. The Value Data field is entered as text. For example, a value for |
a, s, or t |
ASPath |
See a, s, and t above. |
ASPath objects require three components:
|
Administrator locking¶
Many preferences may be locked so that end users cannot change them via the product’s user interface. To do so, set them in the location described above. Some preferences only reside in the lockdown location and do not have a counterpart in the user preference area. For details about specific preferences, refer to the Preference Reference.
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\<version>\FeatureLockDown]
"bToggleShareFeedback"=dword:00000000
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\<version>\FeatureLockDown\cDefaultExecMenuItems]
"tWhiteList"="Close|GeneralInfo|Quit|FirstPage|PrevPage|NextPage|LastPage|ActualSize|FitPage|FitWidth|FitHeight|SinglePage|OneColumn|TwoPages|TwoColumns|ZoomViewIn|ZoomViewOut|ShowHideBookmarks
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\<version>\FeatureLockDown\cDefaultLaunchAttachmentPerms]
"tBuiltInPermList"="version:1|.ade:3|.adp:3|.app:3|.arc:3|.arj:3|.asp:3|.bas:3|.bat:3|.bz:3|.bz2:3|.cab:3|.chm:3|.class:3|.cmd:3|.com:3|.command:3|.cpl:3|.crt:3|.csh:3|.desktop:3|.dll:3|.exe:3|.fxp:3|.gz:3|.hex:3
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\10.0\FeatureLockDown\cDefaultLaunchURLPerms]
"tFlashContentSchemeWhiteList"="http|https|ftp|rtmp|rtmpe|rtmpt|rtmpte|rtmps|mailto"
"tSponsoredContentSchemeWhiteList"="http|https"
"tSchemePerms"="version:2|shell:3|hcp:3|ms-help:3|ms-its:3|ms-itss:3|its:3|mk:3|mhtml:3
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Adobe\Adobe Acrobat\10.0\FeatureLockDown\cJavaScriptPerms]
"tBlackList"="Doc.exportXFAData|Util.CharToByte"
Sample use case¶
Modifying existing or creating custom preferences requires some knowledge of the supported naming conventions and data types. In general:
“Hives” are usually the top-level HKCU, HKLM, and other directories, but it’s also common to refer to subdirectories by the same name.
Folders/directories that contain the actual preferences (keys), appear in the left-hand window, these often are the home for sub containers.
Some keys are containers called “cabs” (Windows) or “dictionaries” (Mac). These names are always prepended by a “c” on Windows. For example,
cAdobe_ChainBuilder
andcAcceptablePolicyOIDs
. The lowest level key container is an array. Item names are always “c” + <index number>. Thus, an array undercAcceptablePolicyOIDs
could be c0, c1, c2, c3, and so on. The subkey structure has a dependency on the data type of the parent container. Cabs at the c0, c1, c2, etc. level use a subdirectory namedcValue
that contain the actual key data. For all other data types, store the value directly at the c0, c1, c2, etc. levelThe lowest key level defines the actual preference. It is always a name/value pair.
To create a new preference on Windows for example:
Open the registry editor.
Look up the preference you want to set in the Preference Reference or the pertinent document. You’ll need to know the path, name, and value.
Navigate to the required location.
Create any container keys you might need on the left-hand side of the editor.
Highlight that containing key and in the right hand side, right click and choose New > <some data value>.
Enter a name.
Right click on the preference name and enter a value.
APIs and the SDK¶
Many preferences are exposed in the API. The plugins use the cross platform ASCab preference mechanism supported by all Acrobat products. This mechanism uses calls such as AVAppGetPrefCab
and AVAppSetPrefCab
, that were introduced in Acrobat 5.0. Refer to the Acrobat and PDF Library API Reference for details on these calls.