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

_images/registry2015.png

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.

Windows data types

Prefix

Data Type

Registry type

Description

a

atom

REG_SZ

The string may be UTF-8 and can therefore include Unicode. The Value Data field is typically entered as text. For example, a value for cHandlers:aPrivKey could be Adobe.PPKLite.

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 cEDC:tLastServerURL could be https://aps.serv.com:123. Note: 7.x and earlier use REG_BINARY and tValue.

a, s, or t

ASPath

See a, s, and t above.

ASPath objects require three components:

  • aFS: The file system for the path, such as DOS.

  • sDI: A string of device independent path.

  • tDIText: The device independent path again in Unicode.

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 and cAcceptablePolicyOIDs. The lowest level key container is an array. Item names are always “c” + <index number>. Thus, an array under cAcceptablePolicyOIDs 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 named cValue that contain the actual key data. For all other data types, store the value directly at the c0, c1, c2, etc. level

  • The lowest key level defines the actual preference. It is always a name/value pair.

To create a new preference on Windows for example:

  1. Open the registry editor.

  2. 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.

  3. Navigate to the required location.

  4. Create any container keys you might need on the left-hand side of the editor.

  5. Highlight that containing key and in the right hand side, right click and choose New > <some data value>.

  6. Enter a name.

  7. Right click on the preference name and enter a value.

_images/registryadd.png

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.