Intermec 700 Laptop User Manual


 
ProgrammingChapter 7
294 700 Series Color Mobile Computer User’sManual
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 Keypad Scan Codes and
Meanings” tableonthenextpage).TheScanCodeisusedatthelowest
level of the system to let the keypad driver know which physical key has
been pressed. The keypad driver takes that scan code and looks it u p 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 will have 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,. . .
Thevalueis34,00.Thevaluesareinreversebyteorderbecausethatisthe
way the processor handles data. When writing an application, nothing
needs to be done to swap the bytes, as this will happen au tomatically when
the data is read into a byte value. This is something you just need to be
aware of when looking at the registry. Knowing this, we can see that the
value that the keypad driver will pass 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 repre-
sentation of “A” from the UNICODE chart), then put the key back into
the registry.
Note: Do not r emap scan codes 0x01, 0x 41, 0x42, 0x43, 0x44. Remap-
pingthesescancodescouldrenderyour700ColorComputerunusable
until a cold-boot is performed.
If you wish to disable a certain key, remap its scan code to 0x00.
Change Notification
Just changing the registry keys will not immediately change the key
mappings. To notify the keypad driver that the registry has been updated,
signal the “ITC_KEYBOARD_CHANGE” named event using the
CreateEvent() API.
Advanced Keypad Remapping
It is also possible to map multiple key presses to one button and to map
named system events to a button. The multiple key press option could be
useful to cut down on the number of keys needed to press in a given situa-
tion or to remap which key behaves like the action key. M apping events to
a button could be useful to change which buttons will fire the scanner,
control volume, and allow f or suspending and resuming the device. If you
need help performing one of these advanced topics please contact Intermec
Technical Support.