Appendix A

Device Specific Registry Keys

Introduction

This document explains the use of all the registry keys used by the "XP Universal Driver Package".

In order for device specific changes to be effective, the device must be restarted (i.e. disable the device and then enable it) in Device Manager, or the system must be rebooted.

For user specific changes to become effective, it is necessary to log off and log back on again.

Registry Keys for Serial

Device Parameters for Elo serial touchscreen are located in subkeys of

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\SERENUM\

ELOSERIAL\*******\Device Parameters key.

The "******" is the id used by the Windows system.

Touch Mode

Name:

MouseMode

Data Type:

DWORD (REG_DWORD)

Explanation:

Touchscreen mode
Possible Values:
Default is 6
0: Click on touch
1: Click on release
6: Mouse emulation

Name:

EnableQuickTouch

Data Type:

DWORD (REG_DWORD)

Explanation:

Enables / disables quick touch mode
Possible Values:
Default is 0
0: Disabled
1: Enabled

Name:

QuickTouchDx

Data Type:

DWORD (REG_DWORD)

Explanation:

X distance in Windows virtual coordinates outside which quick touch is enabled. Within this distance two quick touches are interpreted as regular touches.

Name:

QuickTouchDy

Data Type:

DWORD (REG_DWORD)

Explanation:

Y distance in Windows virtual coordinates outside which quick touch is enabled. Within this distance two quick touches are interpreted as regular touches.

Name:

UntouchDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

"UntouchDelay" defines the time in seconds for the timeout. If there is constant touch at the same location a Button Up event will be generated automatically after the timeout period expires.
Possible Values:
Default value is 10 seconds.

Name:

SwapButton

Data Type:

DWORD (REG_DWORD)

Explanation:

Swaps the mouse left and right buttons. The buttons remain swapped for the count of touches this value is set to. It remains swapped until this count is decremented to 0. After that, the buttons are automatically swapped back to their original state.
Possible Values:
By default this key is not present in the registry. When the DLL API feature is used the mouse buttons are swapped and this value is added.

Name:

LeftHandedUser

Data Type:

DWORD (REG_DWORD)

Explanation:

This is applicable for left-handed mouse users.
Possible Values:
Default is 0
0: Disabled
1: Enabled

Name:

RightButtonActive

Data Type:

DWORD (REG_DWORD)

Explanation:

Indicates that the right button application should be run at user logon for this screen.
Possible Values:
1: Run right button at user logon.
2: Do not run right button for this screen at user logon.

Serial Port Configuration

Name:

PortFriendlyName

Data Type:

String (REG_SZ)

Explanation:

PortFriendlyName identifies the serial port the touchscreen is connected to. The friendly name is the COM port identifier string used by Device Manager and can be found by expanding the Ports node of the Device Manager hardware tree.
To change the COM port associated with a touchscreen, replace the existing value in HKLM\System\CurrentControlSet\Services\EloTouchscreen\LegacyPorts\**\FriendlyName with the friendly name of the desired COM port and restart the system.
Possible Values:

Communications Port (COM1)

Communications Port (COM2)


Name:

BaudRate

Data Type:

DWORD (REG_DWORD)

Explanation:

Baud rate used for serial port communication. Controller must be externally configured to support any baudrate other than 9600.
Possible Values:

Default is 9600.

Allowed: 1200, 2400, 4800, 9600


Name:

HardwareHandshaking

Data Type:

DWORD (REG_DWORD)

Explanation:

This key is used only for serial cables which are built using 2 wires and do not support hardware handshake.
Possible Values:

By default this key is not present in the registry. It has to be explicitly created. By default hardware handshaking is always turned on. To turn it off, explicitly set this key to 0.

Enable/Disable Touch

Name:

PacketEnable

Data Type:

DWORD (REG_DWORD)

Explanation:

Touch is enabled / disabled depending on this value.
Possible Values:
1: Enabled
2: Disabled

3: Reserved

Beep on Touch

Name:

BeepFlag

Data Type:

DWORD (REG_DWORD)

Explanation:

Beep is enabled / disabled depending on this value.
Possible Values:
0: Disabled
1: Enabled

Name:

BeepTime

Data Type:

DWORD (REG_DWORD)

Explanation:

Defines the duration of beep on touch in milliseconds.
Possible Values:
Default is 0x0014.

Name:

BeepFreq

Data Type:

DWORD (REG_DWORD)

Explanation:

Frequency of beep on touch in Hz.
Possible Values:
Default is 0x00300

Drag Delay

Name:

DefaultDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Drag delay value in milliseconds.
Possible Values:
Default is 20

Name:

MinDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Minimum drag delay value on the scale in Control Panel in milliseconds. Reserved for use by control panel and driver.

Name:

MaxDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Maximun drag delay value on the scale in Control Panel in milliseconds. Reserved for use by control panel and driver.

Full Screen Bounding Rectangle and Bounding Mode

Name FullScreenVmode
Data Type: DWORD (REG_DWORD)
Explanation:
Defines the mode for the touchscreen boundary in the virtual desktop mode
Possible Values:
Default is 2
0: Disable virtual desktop. Touch on all screens will reflect on the primary monitor.
1: Enable virtual desktop. In this mode no individual screen bounds are used for the monitor. Touches toward the edge may generate clicks on adjacent monitors.
2: Enable virtual desktop. Screen bounds are enabled for each monitor. Touches on the screen always generate clicks on the associated monitor. A touch outside the bounding rectangle will cause the cursor to move to a point along the boundary that is nearest to the point of touch.
3: Enable virtual desktop. Screen bounds are enabled for each monitor. Touches on the screen always generate clicks on the associated monitor. Touches outside the bounding rectangle are not sent to the system.

Name:

FullScreenBounds

Data Type:

Array of DWORDs (REG_BINARY)

Explanation:

Defines the full screen bounding rectangle in Windows virtual coordinates for the screen.

Calibration

The following defines the calibration data used to convert touches from the Elo coordinate system to Windows virtual coordinate system.

The driver uses the following equation to convert a raw touch coordinate point from Elo coordinate system to the Windows screen coordinate system. Calibration equation is:

Xcal = a + m*Xuncal,

where,
Xuncal, is in Elo coordinate system
Xcal, is in Windows coordinate system
m = X_ScrDx / X_EloDx
"a", is the X offset value entry
X_ScrDx = distance between targets in virtual coordinates
X_EloDx = distance between targets in Elo coordinates.

Name:

X_EloDx, X_ScrDx, X_Offset, Y_EloDx, Y_ScrDx, Y_Offset, Z_EloDx, Z_ScrDx, Z_Offset

Data Type:

DWORD (REG_BINARY)

Explanation:

Data required by calibration. Use the equation above to calculate these values.

Name:

SwapXY

Data Type:

DWORD (REG_DWORD)

Explanation:

Specifies if the touchscreen is rotated 90 degrees or 270 degrees.
Possible Values:
Set to 1 if touchscreen is rotated 90 degrees or 270 degrees else set to 0

Name:

WindowsMonitorNumber

Data Type:

DWORD (REG_DWORD)

Explanation:

Windows monitor number.
Possible Values:
Windows monitor numbers are 1 based.

Name:

X_Resolution

Data Type:

DWORD (REG_DWORD)

Explanation:

Screen width in pixels.

Name:

Y_Resolution

Data Type:

DWORD (REG_DWORD)

Explanation:

Screen height in pixels.

Name:

xVirtScrSize

Data Type:

DWORD (REG_DWORD)

Explanation:

Width in pixels of the Windows virtual screen.

Name:

yVirtScrSize

Data Type:

DWORD (REG_DWORD)

Explanation:

Height in pixels of the Windows virtual screen.

Name:

xVirtScrCoord

Data Type:

DWORD (REG_DWORD)

Explanation:

Top left X coordinate of the Windows virtual screen.

Name:

yVirtScrCoord

Data Type:

DWORD (REG_DWORD)

Explanation:

Top left Y coordinate of the Windows virtual screen.

Name:

xMonLocn

Data Type:

DWORD (REG_DWORD)

Explanation:

Monitor location (X) for this monitor on the virtual desktop.

Name:

yMonLocn

Data Type:

DWORD (REG_DWORD)

Explanation:

Monitor location (Y) for this monitor on the virtual desktop.

Edge of Touchscreen Cursor Acceleration

Name:

EdgeAccelerationEnable

Data Type:

DWORD (REG_DWORD)

Explanation:

Enables / disables acceleration.
Possible Values:
Default is 0
0: Disable acceleration.
1: Enable acceleration

Name:

EdgeAccelerationBounds

Data Type:

Array of DWORDS (REG_BINARY)

Explanation:

Rectangle bounds (XMin, YMin, XMax, YMax) beyond which cursor movement is accelerated. Within the defined rectangle touch is interpreted normally. XMin, YMin, XMax, YMax are defined in Windows virtual screen coordinates.

Name:

EdgeAccelerationScale

Data Type:

DWORD (REG_DWORD)

Explanation:

Acceleration value.
Possible Values:
Default is unused.
It can be anywhere in the range of 0-100. 10 indicates no acceleration.

Registry Keys for USB Device

Device Parameters for USB touchscreen are located in the sub keys of the HID key and the USB key.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\Vid_04e7&Pid_???\*******\Device Parameters key for USB.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\HID\Vid_04e7&Pid_???\*******\Device Parameters key for HID.

where, "???" is the product id.
And the "******" is the serial number for the touchscreen.

Enable / Disable Touch

Name:

PacketEnable

Data Type:

DWORD (REG_DWORD)

Explanation:

Touch is enabled / disabled depending on this value.
Possible Values:
1: Enabled
2: Disabled

Full Screen Bounding Rectangle and Bounding Mode

Name: FullScreenVmode
Data Type: DWORD (REG_DWORD)
Explanation:
Defines the mode for the touchscreen boundary in the virtual desktop mode.
Possible Values:
Default is 2.
0: Disable virtual desktop. Touch on all screens will reflect on the primary monitor.
1: Enable virtual desktop. In this mode no individual screen bounds are used for the monitor. Touches toward the edge may generate clicks on adjacent monitors.
2: Enable virtual desktop. Screen bounds are enabled for each monitor. Touches on the screen always generate clicks on the associated monitor. A touch outside the bounding rectangle will cause the cursor to move to a point along the boundary that is nearest to the point of touch.
3: Enable virtual desktop. Screen bounds are enabled for each monitor. Touches on the screen always generate clicks on the associated monitor. Touches outside the bounding rectangle are not sent to the system.

Name:

FullScreenBounds

Data Type:

Array of DWORDs (REG_BINARY)

Explanation:

Defines the full screen bounding rectangle in Windows virtual coordinates for the screen.

Calibration

The following defines the calibration data used to convert touches from the Elo coordinate system to Windows virtual coordinate system.

The driver uses the following equation to convert a raw touch coordinate point from Elo coordinate system to the Windows screen coordinate system.

Calibration equation is
Xcal = a + m*Xuncal,

where,
Xuncal, is in Elo coordinate system
Xcal, is in Windows coordinate system
m = X_ScrDx / X_EloDx
"a", is the X offset value entry
X_ScrDx = distance between targets in virtual coordinates
X_EloDx = distance between targets in Elo coordinates.

Name:

X_EloDx, X_ScrDx, X_Offset, Y_EloDx, Y_ScrDx, Y_Offset, Z_EloDx, Z_ScrDx, Z_Offset

Data Type:

DWORD (REG_DWORD)

Explanation:

Data required by calibration. Use the equation above to calculate these values.

Name:

SwapXY

Data Type:

DWORD (REG_DWORD)

Explanation:

Specifies if the touchscreen is rotated 90 degrees or 270 degrees.
Possible Values:
Set to 1 if touchscreen is rotated 90 degrees or 270 degrees else set to 0

Name:

WindowsMonitorNumber

Data Type:

DWORD (REG_DWORD)

Explanation:

Windows monitor number.
Possible Values:
Windows monitor numbers are 1 based.

Name:

X_Resolution

Data Type:

DWORD (REG_DWORD)

Explanation:

Screen width in pixels.

Name:

Y_Resolution

Data Type:

DWORD (REG_DWORD)

Explanation:

Screen height in pixels.

Name:

xVirtScrSize

Data Type:

DWORD (REG_DWORD)

Explanation:

Width in pixels of the Windows virtual screen.

Name:

yVirtScrSize

Data Type:

DWORD (REG_DWORD)

Explanation:

Height in pixels of the Windows virtual screen.

Name:

xVirtScrCoord

Data Type:

DWORD (REG_DWORD)

Explanation:

Top left X coordinate of the Windows virtual screen.

Name:

yVirtScrCoord

Data Type:

DWORD (REG_DWORD)

Explanation:

Top left Y coordinate of the Windows virtual screen.

Name:

xMonLocn

Data Type:

DWORD (REG_DWORD)

Explanation:

Monitor location (X) for this monitor on the virtual desktop.

Name:

yMonLocn

Data Type:

DWORD (REG_DWORD)

Explanation:

Monitor location (Y) for this monitor on the virtual desktop.

Edge of Touchscreen Cursor Acceleration

Name:

EdgeAccelerationEnable

Data Type:

DWORD (REG_DWORD)

Explanation:

Enables / disables acceleration.
Possible Values:
Default is 0.
0: Disable acceleration.
1: Enable acceleration.

Name:

EdgeAccelerationBounds

Data Type:

Array of DWORDS (REG_BINARY)

Explanation:

Rectangle bounds (XMin, YMin, XMax, YMax) beyond which cursor movement is accelerated. Within the defined rectangle touch is interpreted normally. XMin, YMin, XMax, YMax are defined in Windows virtual screen coordinates.

Name:

EdgeAccelerationScale

Data Type:

DWORD (REG_DWORD)

Explanation:

Acceleration value.
Possible Values:
Default is unused.
It can be anywhere in the range of 0-100. 10 indicates no acceleration.

Registry Keys for HID

Touch Mode

Name:

MouseMode

Data Type:

DWORD (REG_DWORD)

Explanation:

Touchscreen mode.
Possible Values:
Default is 6.
0: Click on touch.
1: Click on release.
6: Mouse emulation.

Name:

EnableQuickTouch

Data Type:

DWORD (REG_DWORD)

Explanation:

Enables / disables quick touch mode
Possible Values:
Default is 0.
0: Disabled
1: Enabled

Name:

QuickTouchDx

Data Type:

DWORD (REG_DWORD)

Explanation:

X distance in Windows virtual coordinates outside which quick touch is enabled. Within this distance two quick touches are interpreted as regular touches.

Name:

QuickTouchDy

Data Type:

DWORD (REG_DWORD)

Explanation:

Y distance in Windows virtual coordinates outside which quick touch is enabled. Within this distance two quick touches are interpreted as regular touches.

Name:

UntouchDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

"UntouchDelay" defines the time in seconds for the timeout. If there is constant touch at the same location a Button Up event will be generated automatically after the timeout period expires.
Possible Values:
Default value is 10 seconds.

Name:

SwapButton

Data Type:

DWORD (REG_DWORD)

Explanation:

Swaps the mouse left and right buttons. The buttons remain swapped for the count of touches this value is set to. It remains swapped until this count is decremented to 0. After that, the buttons are automatically swapped back to their original state.
Possible Values:
By default this key is not present in the registry. When the DLL API feature is used the mouse buttons are swapped and this value is added.

Name:

LeftHandedUser

Data Type:

DWORD (REG_DWORD)

Explanation:

This is applicable for left-handed mouse users.
Possible Values:
Default is 0.
0: Disabled
1: Enabled

Name:

RightButtonActive

Data Type:

DWORD (REG_DWORD)

Explanation:

Indicates that the right button application, should be run at user logon for this screen.
Possible Values:
1: Run right button at user logon.
2: Do not run right button for this screen at user logon.

Beep On Touch

Name:

BeepFlag

Data Type:

DWORD (REG_DWORD)

Explanation:

Beep is enabled / disabled depending on this value.
Possible Values:
0: Disabled
1: Enabled

Name:

BeepTime

Data Type:

DWORD (REG_DWORD)

Explanation:

Defines the duration of beep on touch in milliseconds.
Possible Values:
Default is 0x0014

Name:

BeepFreq

Data Type:

DWORD (REG_DWORD)

Explanation:

Frequency of beep on touch in Hz.
Possible Values:
Default is 0x00300

Drag Delay

Name:

DefaultDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Drag delay value in milliseconds.
Possible Values:
Default is 20.

Name:

MinDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Minimum drag delay value on the scale in Control Panel in milliseconds. Reserved for use by control panel and driver.

Name:

MaxDragDelay

Data Type:

DWORD (REG_DWORD)

Explanation:

Maximum drag delay value on the scale in Control Panel in milliseconds. Reserved for use by control panel and driver.

User Specific Registry Keys

User specific configuration data are saved in this key. User key is located in

HKEY_CURRENT_USER\Software\EloTouchscreen

Name:

DoubleClickHW

Data Type:

DWORD (REG_DWORD)

Explanation:

Defines the double click width and height.
Possible Values:
Default value is 25

Name:

EloTTray

Data Type:

DWORD (REG_DWORD)

Explanation:

This determines if Tool tray application should be run for this user when the user logs in.
Possible Values:
Default value is 1.
1: Run Elo tool tray app
2: Do not run Elo tool tray app.

Name:

RButton

Data Type:

Array of DWORDs(REG_BINARY)

Explanation:

Saves x,y Location of Right button application in Windows virtual coordinates.