How key values are stored in registry, Change notification – Intermec 751G User Manual

Page 114

Advertising
background image

Chapter 3 — Configuring the Computer

100

751G Color Mobile Computer User’s Manual

For the 751G keypad, these registry keys contain the plane mappings:

• The unshifted plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\Vkey

• The orange plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyGold

• The alpha plane mapping is in the registry at:

HKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP\KEYBD\VkeyAlpha

How Key Values Are Stored in Registry

To know which fields to update in the registry, you must know what Scan
Codes are assigned to each physical key (see the table starting on the next
page). The Scan Code is used at the lowest level of the system to let the
keypad driver know which physical key was pressed. The keypad driver
takes that scan code and looks it up in a table (a copy of the one stored in
the registry) to determine which values to pass on to the operating system.

Each registry key is just an array that describes to the keypad driver what
value needs to be passed for each physical key. The key values are indexed
by the scan code, this is a zero-based index. For example in the unshifted
plane, the [4] key has a scan code of 0x06. This means that the seventh
word under the “Vkey” registry key has the value for the [4] key. Taking a
sample of the “Vkey” registry key shows the following values:

00,00,0B,05,02,03,C1,07,04,03,BE,00,34,00,00,00,. . .

The value is 34,00. The values are in reverse byte order because that is the
way the processor handles data. When writing an application, nothing
needs to be done to swap the bytes, as this happens automatically when the
data is read into a byte value. This is something to be aware of when
looking at the registry. Knowing this, we can see that the value that the
keypad driver passes to the system is a hex 34. Looking that up on an
UNICODE character chart, we see that it maps to a “4”. If you wanted the
key, labeled “4”, to output the letter “A” instead, you would need to change
the seventh word to “41” (the hexadecimal representation of “A” from the
UNICODE chart), then put the key back into the registry.

If you wish to disable a certain key, remap its scan code to 0x00.

Change Notification

Changing registry keys alone does not immediately change key mappings.
To notify the keypad driver the registry was updated, use the CreateEvent()
API to signal the “ITC_KEYBOARD_CHANGE” named event.

Note: Do not remap scan codes 0x01, 0x41, 0x42, 0x43, 0x44. Remapping
these could render the 751G unusable until a cold-boot is performed.

Advertising