Thin Client Registry Settings

The registry stores information necessary to configure the Thin Client for applications and hardware devices. The registry also contains information that the operating system continually references during operation.

By default, the Windows Thin Client image includes the correct components. You change these settings to customize the thin client.

You can change the device registry settings in the following ways:

  • Before building and downloading the image, modify the Project.reg file. For more information about modifying this file, see Modifying the Registry by Editing Project.reg.
  • After downloading the image, use the Remote Registry Editor. Using the Remote Registry Editor changes the image registry, but the changes are not persistent to the registry files in Platform Builder. The next time you download the image, you must configure the registry again. For information about how to use the Remote Registry Editor, see Remote Registry Editor.

The following table shows the areas that you can configure in the registry.

Configure Description
Configuring the Control Panel Configure the Control Panel utility, the Control Panel wizard, and the Control Panel property utilities.
Configuring the Terminal Services Client Configure the Terminal Services Client to run in a Windows Thin Client Shell.
Configuring the Windows Thin Client Shell Configure startup behavior, hot key settings, and screen savers.
Configuring Client Information Configure the default client to appear when the user creates a new connection.
Configuring Printers Both the Add Printer Wizard (APW) and Setup user interfaces (UIs) are backed by logic that reads and writes printer information. Additional printer manufacturers and models can be added to ntprint_parsed.txt, and built into the run-time image (NK.BIN).

Do not add new printers by adding registry settings. Instead, add new printers by using the Add Printer wizard. Depending on the printer added, this wizard adds critical binary data to the registry that is used for the redirected printing.

Note   The default registry values vary depending on which features are included in your platform. For more information, see Default Registry Settings.

You should add a printer through the printer wizard rather than configure it in the registry. Registry settings for installed printers are provided for your convenience.

Configuring the Control Panel

The HKEY_LOCAL_MACHINE\SYSTEM\CtlpnlApplet registry key is the base registry key for the Control Panel utility. The following table shows the named value.

Value Description
SingleInstance: DWORD Default setting is zero (0).

The HKEY_LOCAL_MACHINE\SYSTEM\CtlpnlApplet\WizCplApplet registry key controls the Control Panel wizard. The following table shows the named values.

Value Description
CplApplet0 Default setting is LOC_WBTSHELL_CPL_NETWORK.
CplApplet1 Default setting is LOC_WBTSHELL_CPL_PRINTERS.

The HKEY_LOCAL_MACHINE\SYSTEM\CtlpnlApplet\TermPropCplApplet registry key controls the Control Panel property utilities. The following table shows the named values.

Value Description
CplApplet0 Default setting is LOC_WBTSHELL_CPL_NETWORK.
CplApplet1 Default setting is LOC_WBTSHELL_CPL_PRINTERS.
CplApplet0 Default setting is LOC_WBTSHELL_CPL_NETWORK.
CplApplet1 Default setting is LOC_WBTSHELL_CPL_PRINTERS.
CplApplet2 Default setting is LOC_WBTSHELL_CPL_KEYBOARD.
CplApplet3 Default setting is LOC_WBTSHELL_CPL_SYSTEM.
CplApplet4 Default setting is LOC_WBTSHELL_CPL_MOUSE.
CplApplet5 Default setting is LOC_WBTSHELL_CPL_VOLUMEANDSOUNDS.
CplApplet6 Default setting is LOC_WBTSHELL_CPL_DATETIME.
CplApplet7 Default setting is LOC_WBTSHELL_CPL_ACCESSIBILITY.
CplApplet8 Default setting is LOC_WBTSHELL_CPL_REGIONAL.
CplApplet9 Default setting is LOC_WBTSHELL_CPL_CERTIFICATES.
CplApplet10 Default setting is LOC_WBTSHELL_CPL_DEVICE_MANAGEMENT. This value is present only if Device Management components are included in the image, that is, the image is built with SYSGEN_DEVMGMT set to 1.

Note   You can add Control Panel utilities by adding additional entries to this registry key. You can include any of the components listed in Control Panel Components. For an example of how to add a control panel utility in the projects.reg file, see Customizing the Thin Client OS Image.

Configuring the Terminal Services Client

The Terminal Services Client is controlled by the Terminal Server Client node in the registry. The HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client registry key controls the configuration of the Terminal Services Client. The following table shows the named values.

Value Description
CEConfig Default setting is "WBT". The following list shows the available settings.
  • "WBT" – Indicates that the Terminal Services Client is running in a Windows Thin Client Shell. This is when SYSGEN_WBTSHELL = 1.
  • "Maxall" – Indicates that the Terminal Services Client is nor running the Windows Thin Client Shell. This is used in all other configurations.

The following list shows the behavior when this setting is WBT:

  • File change notifications through protected server library (PSL) calls will be disabled.
  • The Windows Thin Client Shell will not bring up the Windows CE Terminal Services Client (CETSC) user interface.
  • Keyboard hooks will be disabled for the Windows Thin Client Shell.
  • Additional registry migration will occur for Windows Thin Client platforms because the connections are started through registry settings and not through .RDP files.

The following list describes issues that a Windows Thin Client might encounter if this value is set to "Maxall":

  • The Filesys.exe may crash when drive redirection is enabled and an attempt is made to copy a file by using the clipboard.
  • The CETSC user interface appears in the Windows Thin Client when the dialog box about enabling drive redirection is cancelled.
  • Hoy key messages might be sent to remote sessions.

**Note   **Windows CE .NET 4.2 does not use the CEUseScanCodes registry key.

The following code example shows the registry settings in Rdp.reg that associate .rdp files with CETSC.

[HKEY_CLASSES_ROOT\.rdp]
    @="rdpfile"
[HKEY_CLASSES_ROOT\rdpfile]
    @=LOC_RDPCONNECTION
[HKEY_CLASSES_ROOT\rdpfile\DefaultIcon]
    @="\\Windows\\cetsc.exe,-101"
[HKEY_CLASSES_ROOT\rdpfile\Shell\Open\Command]
    @="\\Windows\\cetsc.exe %1"

For more information about RDP Registry Settings, see RDP Registry Settings.

Configuring the Windows Thin Client Shell

The HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Shell registry key configures the Windows Thin Client Shell.

Note   Microsoft does not recommend changing the default values for these registry settings without careful study of the environment as adjusting registry parameters may adversely affect system performance.

The following table shows the named values. These values are optional.

Value Description
ConnectionDefaultKey: REG_SZ No default setting. This value specifies the connection key for the default connection.
ConnectionDefaultType: REG_SZ No default setting. This value specifies the connection type for the default connection. It must specify the name of the registered client entry. Do not confuse this value with the Type entry of a registered client.
DisableConfigureTab: REG_DWORD Default setting is zero (0). The following list shows the possible values:
  • If this value is greater than zero (0), then the Configure tab is not present on the Connection manager
  • If this value is zero (0), then the Configure tab is present.
EnableAutoConnect: REG_DWORD Default setting is zero (0). The following list shows the possible values:
  • If this value is greater than zero (0), then the shell starts the default connection automatically.
  • If this value is zero (0), then the shell does not start the default connection automatically.

This value is optional.

EndTaskWaitTime: REG_DWORD Default setting is 10,000. This value specifies the amount of time, in milliseconds, between the time the user chooses the End button and the shell prompts the user to Wait, EndTask, or Cancel if the process has not ended.

This value is optional.

SetupExe: REG_SZ Default setting is Wbtsetup.exe. This value specifies the name of the Setup Properties Sheets executable file.
SetupCmdLine: REG_SZ No default setting. This value specifies the command-line parameters to pass to the program that is specified by SetupExe.

This value is optional.

TaskmanTitle: REG_SZ Default setting is "Terminal Connection Manager". This value specifies the text to display in the title bar of the Connection Manager. You must end the name with the words "Connection Manager".

Although this value is optional, Microsoft recommends that you enter a value to avoid an undesirable default value.

Hot Key Values For information about setting the named values related to hot keys, see the section on configuring hot keys below.
Screen Saver Values For information about setting the named values related to screen savers, see the section on configuring screen savers below.

For more information about configuring the Windows Thin Client Shell, see Customizing the Thin Client OS Image.

Configuring Hot Keys

You must provide hot-key support to the user. At minimum, you must set the default hot key connection for each Windows Thin Client device in the registry. You can modify these connections if you wish.

You must also provide a UI in the Setup Property Sheets by which the user can enable hot-key support or make it unavailable. You have the option of making the hot keys configurable.

The following table shows the default hot-keys used to switch tasks between emulator sessions and process management. These keys are used when a user creates and ends sessions.

Default Hot Key Description
CTRL+ALT+END Brings the Windows Thin Client Shell UI to the foreground.
Security Note   The Thin Client shell sends the CTRL+ALT+DEL key combination to the Terminal Server host machine to present the Windows Security dialog.
CTRL+ALT+UP ARROW Switches to the next active session without bringing the shell forward. The next active session is the session that is above the current session, as viewed from the shell UI.
CTRL+ALT+DOWN ARROW Switches to the next active session without bringing the shell forward. The next active session is the session that is below the current session, as viewed from the shell UI.
CTRL+ALT+HOME Switches to the default connection, if it is running. If it is not running, then the shell starts the connection.

The hot key settings are stored in the following registry key:

HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Shell.

The following table shows the named values for this registry key. No restart is required when you change these settings.

**Note   **The shell allows for three hot keys to be specified. You can enable either all three of them or none of them. You cannot enable one or two hot keys. For hot-key support to be enabled, all of the hot keys must be registered successfully. If any key fails to register as a hot key, then hot-key support is unavailable.

Value Description
HotKeyEnable: REG_SZ Default setting is zero (0). This value specifies whether to enable hot-key support. If this value is greater than 0, then hot-key support is enabled. If this value equals 0, then hot-key support is made unavailable..
HotKey1VKey: REG_DWORD Default setting is 0x26 (VK_UP). This value specifies the virtual-key code of the hot key that delivers an "up" action. This hot key brings the next active session forward so that it is above the current session, relative to the shell UI. If the session reaches the top of the list, then it goes to the bottom of the list and continues upward.
HotKey1fMod: REG_DWORD Default setting is 0x03. This value specifies the key-state modifiers for the hot key that is specified by the HotKey1Vkey value. The following list shows the key modifiers and their values:
  • ALT key: 0x0001
  • CTRL key: 0x0002
  • SHIFT key: 0x0004

You can specify any combination of these modifiers for the virtual key. You must run the OR operator on the desired modifiers to produce a single value. For example, to generate a hot-key message for the CTRL+ALT+PAGE UP key combination, you must specify the following hot-key values.

HotKey1Vkey = 0x21 (VK_PRIOR)
HotKey1fMod = 0x03
HotKey2VKey: REG_DWORD Default setting is 0x28 (VK_DOWN). This value specifies the virtual-key code of the hot key that delivers a "down" action. This hot key brings forward the next active session that is below the current session, relative to the shell UI. If the session reaches the bottom of the list, then it goes to the top of the list and continues downward.
HotKey2fMod: REG_DWORD Default setting is 0x03. This value specifies the key-state modifiers for the hot key that is specified by the HotKey2Vkey value. For more information, see the HotKey1fMod value.
HotKey3VKey: REG_DWORD Default setting is 0x24 (VK_HOME). This value specifies the virtual-key code of the hot key that delivers a "home" action. This hot key brings forward the default session. If the default connection is not active, then the shell activates it and brings it forward.
HotKey3fMod: REG_DWORD Default setting is 0x03. This value specifies the key-state modifiers for the hot key that is specified by the HotKey3Vkey value.

Configuring Screen Savers

The Windows Thin Client Shell supports screen savers. If you want the shell to load a screen saver after a specified period of time, you must include the dynamic-link library (DLL) of the screen saver in your image. You must also configure the registry to support the screen saver. The following registry key shows the required settings for Windows Thin Client.

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power]
    "BattPowerOff"=DWORD:0
    "ExtPowerOff"=DWORD:0
    "ScreenPowerOff"=DWORD:300

The ScreenPowerOff registry entry specifies the amount of time, in seconds, that must elapse with no user input before the shell starts the screen saver. To prevent the network from resetting the no-activity timer, the following registry setting must be entered.

[HKEY_LOCAL_MACHINE\Comm\CXport]
    "NoIdleTimerReset"=DWORD:1

When the user presses the CTRL+ALT+END key combination, the Windows Thin Client Shell brings the shell UI to the foreground. To configure this key combination, set the following registry entries.

[HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD]
    "DriverName"="Kbdmouse.dll"
    "CalVKey"=DWORD:0
    "ContLessVKey"=DWORD:0
    "ContMoreVKey"=DWORD:0
    "TaskManVKey"=DWORD:23

The HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBT\Shell registry key configures the screen saver for the thin client shell. The following table shows the named values.

Value Description
ScreenSaver (REG_SZ) This value specifies the DLL to load when starting the screen saver. This value is entered at build time.

The following list shows the three screen savers that are included with the Windows-based Terminal user interface source; you can use one of these as the screen saver:

  • SSFloat (ssfloat.dll)
  • SSBlank (ssblank.dll)
  • SSTile (sstile.dll).

To include one of these screen savers, list the name of the desired screen saver in the RDP_MODULES environment variable (%_PROJECTROOT%\Oak\Misc\Cesysgen.bat).

ScreenSaverEnable (REG_DWORD) This value specifies whether to enable the screen saver. If this value is equal to 0, then the screen saver is not enabled. If it is greater than 0, then the screen saver is enabled and the shell attempts to load the screen saver specified. Because the shell queries this registry every time that it receives a WM_POWERBROADCAST message, thiscan be changed dynamically.

Configuring Thin Client Startup Behavior

You can configure the shell to start applications automatically prior to launching the user interface (UI). Use this functionality for applications that require a UI, such as the Windows Thin Client Setup Wizard, and that must run before the shell UI is started. Applications that do not require a UI must start as part of the Windows CE initialization process.

For each application that you want to start automatically, you must create a unique key in the HKEY_LOCAL_MACHINE \Software\Microsoft\WBT\Shell\Startup key.

The key name is converted to an integer by the shell, and should therefore be a name that is converted easily; for example, 1, 10, or 20. Each Startup key represents an index that specifies the order in which an application must be started. The key name can represent an integer of 1 or greater; indexes are not required to be sequential. The shell first starts the application that has the lowest index value, and works its way up to the application that has the highest index value.

The following is an example of some application Startup keys.

[HKEY_LOCAL_MACHINE \Software\Microsoft\WBT\Shell\Startup\10]
[HKEY_LOCAL_MACHINE \Software\Microsoft\WBT\Shell\Startup\20]
[HKEY_LOCAL_MACHINE \Software\Microsoft\WBT\Shell\Startup\21]

The following table shows the entries that you must add to each Startup key.

Note   If the required values are either not set or are not valid, then the shell ignores the value and no error is posted to the user.

Value Description
Application: REG_SZ No default setting. This value specifies the executable file to start automatically.

This value is required.

CmdLine: REG_SZ No default setting. This value specifies the command-line arguments to pass to the application that is specified by Application.

This value is optional.

WaitOnProcess: REG_DWORD No default setting. The following list shows the possible values:
  • A value of 1 or greater indicates that the shell will wait for the application to end before continuing.
  • A value of zero (0) indicates that the shell will start the process and continue. Do not enter a value of zero (0) for applications that have a UI.

This value is required.

Configuring Client Information

The root key, HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration, contains information that the shell uses to determine registered clients. The following table shows the named values.

Value Description
DefaultClient: REG_SZ No default setting. This value specifies the registered client key to designate as the default client when a user creates a new connection. For example, to set the default client to RDP, this value would be RDP.

Do not confuse this key name with the Type entry of a registered client.

From the HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration root, each client must have its own subkey with a unique name. This subkey contains the information about the client and about each connection that has been defined for it.

The following are examples of client information keys.

[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\RDP]
[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\VT100]
[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\3270]

The HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\Your client name registry key contains client information. If the entry of a client is incomplete or invalid, then the shell ignores the client, and a user is not able to create connections that are based on it. No error message is posted if the shell encounters a client that is not properly configured.

The following table shows the named values for a client.

Value Description
Description: REG_SZ No default setting. This value specifies the display name for the client. For example, the display name for Microsoft RDP might be "Microsoft Remote Desktop Client." When creating connections, a user is presented with the list of emulators and their descriptions.

This value is required.

Type: REG_SZ No default setting. This value specifies the short eight-character description for the client. This information is displayed in the Type column of the Windows Thin Client Shell user interface (UI).

This value does not need to match the name in the client key. For example, two VT100 clients might have the client key names of VT100a and VT100b, but the Type value can be VT100 for both clients.

This value is required.

NewExe: REG_SZ No default setting. This value specifies the helper application to call when creating a new connection. Each client must have a helper application for creating new connections. The helper application for creating new connections must be a wizard.

This value is required.

NewCmdLineArgs: REG_SZ No default setting. This value specifies the command-line arguments to pass to the helper application that is specified by the NewExe value. The command-line arguments can specify the required function. This is useful if you want to provide a helper application to create, edit, and delete connections.

This value is optional.

The following code example shows the client information key that is required for RDP:

[HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\RDP]
    "Description"="Microsoft Remote Desktop Client"
    "Type"="RDP"
    "NewExe"="Tsconwiz.exe"
    "NewCmdLineArgs"=""

The Windows Thin Client Shell also requires information about how to start, edit and delete each connection that it manages. This information is specified in the HKEY_LOCAL_MACHINE\Software\Microsoft\WBT\Clients\Registration\Your client name\Connections\Your connection name registry key.

You must create a Connections key in the root of each registered client. Each subkey in the Connections key represents a connection entry. The client's connection key must contain all values that are required by the shell. Each client must maintain its connection key. If subkey entries for a client are changed, the system does not need to be reset.

The shell enumerates the Connections key to determine the list of connections that are defined for each client. The shell updates the connection information of a client after an add operation, an edit operation, or a delete operation by a user.

Connection named values must be placed in the root of the key defined for each connection. If the registry values of a connection are incomplete or are not valid, then the shell will ignore the connection and the connection will not be listed in the shell. However, an error message is not posted to the user if the shell encounters an improperly configured connection.

The following table shows the named values for each Connections key. These values are required.

Value Description
Description: REG_SZ No default setting. This value specifies the display name for the connection. The Windows Thin Client Shell displays connections by names that are obtained from this value.
StartExe: REG_SZ No default setting. This value specifies the executable file to launch when creating a new connection.
StartCmdLineArgs: REG_SZ No default setting. This value specifies the command-line arguments to pass to the executable that is specified by the StartExe value.
PropertiesExe: REG_SZ No default setting. This value specifies the helper application to call when modifying the properties or editing an existing connection.
PropertiesCmdLineArgs: REG_SZ No default setting. This value specifies the command-line arguments to pass to the helper application that is specified by the PropertiesExe value.
DeleteExe: REG_SZ No default setting. This value specifies the helper application to call when deleting a connection.
DeleteCmdLineArgs: REG_SZ No default setting. This value specifies the command-line arguments to pass to the helper application that is specified by the DeleteExe value.

Configuring Printers

Both the Add Printer Wizard (APW) and Setup user interfaces (UIs) are backed by logic that reads and writes printer information. Additional printer manufacturers and models can be added to ntprint_parsed.txt, and built into the run-time image (NK.BIN). The printer name must be identical to the printer name of the server, so that the correct driver can be loaded onto the server during a redirected print operation.

The registry settings for the installed printers are stored in the HKEY_LOCAL_MACHINE\WBT\Printers\DevConfig\<LPT#> subkey, where <LPT#> indicates any physical port that is available on the Windows Thin Client. For example, LPT1, or LPT2.

Do not add new printers by adding registry settings. Instead, add new printers by using the Add Printer wizard. Depending on the printer added, this wizard adds critical binary data to the registry that is used for the redirected printing.

Addition of a new printer through the wizard has additional associated logic in RDP. Binary data associated with the printer is stored in HKEY_LOCAL_MACHINE\Software\Microsoft\Terminal Server Client\Default\AddIns\RDPDR under the named value PrinterCacheData0.

For details regarding the format of this data refer to %_WINCEROOT%\Public\Rdp\Oak\Uit\Wbttscmn\Printerhelper.cpp

The following table shows values that are created and used internally by the Windows Thin Client components. These values should never be modified using the Registry Editor. They are listed here for reference only.

Value Description
Name Default is the user-defined "friendly name" of the printer. This name is optional.
Driver Default is the Microsoft Windows model name of the printer. This name is required.
Default Default is 1. Indicates the default local printer. This is the printer associated with the port name that is the default value ("@") of the HKEY_LOCAL_MACHINE\WBT\Printers\Default subkey. If this value or key does not exist, then no local printer is the default printer.

The following table shows the value that is created and used internally by the Windows Thin Client components. This value should never be modified using the Registry Editor. It is listed here for reference only. This entry is located under the HKEY_LOCAL_MACHINE\WBT\Printers key.

Value Description
Default Indicates the physical port that is associated with the default printer on the Windows Thin Client. For example, LPT1:, LPT2:, and so forth.

See Also

Windows Thin Client Configuration | Customizing the Thin Client OS Image | RDP Registry Settings

Last updated on Wednesday, April 13, 2005

© 2005 Microsoft Corporation. All rights reserved.