Build-A-Board: The Next Generation of Onscreen Keyboards; Version 2.20 Release 7; User's Guide | ||
---|---|---|
Prev | Chapter 7. Advanced User Notes | Next |
IMPORTANT NOTE: This section is from the 1.xx software, and is primarily included to show the KMF key numbers (below). When using {KMF:???} and [KMF:???] type overrides, the original keyboard location/key number may be needed - this section lists the key reference numbers from the 1.xx software. The macro specifics, in general, are not supported on platforms other than Windows, and even the Windows releases may not support all aspects outlined here. For Android platforms, only reference the construct of the %% type codes - only these are supported for Key Actions. If you are reading this section for something other than the key listings to reference KMF lookups, you may wish to contact IMG Technical Support to clarify your version of run-time software, and review what you are trying to accomplish.
The following double-characters are reserved in Build-A-Macro:
@@ - Signifies an Alt keystroke to follow
e.g. @@f = [Alt-Down]f[Alt-Up]
~~ - Signifies a Ctrl keystroke to follow
^^ - Signifies a Shift keystroke to follow
$$ - used internally for internal macro uses
%% - used to specify a virtual key, internal keystroke, or a keyboard scan code
You may not use these character combinations in your macros, unless you use them as outlined. For example, you may quickly create a macro for File, New ([Alt]-F, N) by entering "@@fn" and clicking OK. However, using the Reserved words in brackets is the preferred method.
The %% sequence has 4 options, and must be formed properly to be interpreted as an special entry. 4 characters must follow the 2 percent signs, spaces are not allowed. When this is used, it generates both the Down and Up keyboard messages, (press & release), similar to the entry of a specific character.
The following general form is:
%%cnnn
where c is a character signifying Keystroke or Scancode or Virtual Key Code or ProcessKey keystroke - The only valid characters are k or or e or s or v or p (case does not matter)
The nnn must be 3 decimal digits (values between 000 and 999 are valid). Note that there are only 200+ keys on the panels and 255 Virtual keys - higher numbers may cause memory access errors!
The keystroke (k) numbers refer to the internal numbering of the keyboard - see below for a table of the standard 101 keyboard.
For example, to generate a F10 keystroke, you may use "%%k010" in the Build-A-Macro portion. In most cases, using the actual character will generate the appropriate scan codes internally, and this is only provided as an enhancement to provide more functionality in certain environments. Documented deficiencies include lack of support for the keys on the Numeric keypad panel. Additionally, by using the scancodes, macros can generate "keystrokes" for keys that are not present on the physical keyboard. Because of the hardware oriented nature of the actual scancode generated by the physical keyboard, and its interpretation by the system hardware and Windows, the scope of these issues requires that they be referenced in appropriate system manuals, and/or documentation on industry standards.
The Extended Key (e) is similar to k, but sends key event as an extended key code.
The Virtual Key (v) passes the Windows based Virtual key code directly through Build-A-Board. How an application interprets the virtual key code is dependent on regional, language, keyboard layout, and possibly other issues.
The ProcessKey (p) approach uses the internal ProcessKey function which handles more internal processing beyond the AcceptCode function handled by the k, s, or v options. This was added to allow macros to interact with the WordComplete panel on the Assistive Technology version.
Technical Information: The internal interface uses the AcceptCode approach which adds the keystroke to the buffer to be typed. This is managed in different ways as specified based on the k, v, or s options. The p option calls the internal ProcessKey that does various tasks prior to calling the AcceptCode function to insert the keystroke into the output buffer. Because of the tightly interwoven aspects of ProcessKey, the keyboard panel, and special options such as WordComplete, there may be side-effects if the %%pnnn is used extensively. There may also be other interactions with various other features (Show & Hide Keys, LetterAssist, etc.) that the direct AcceptCode approach will completely bypass. The intended use is to allow a single macro button to type a letter, and interact with the WordComplete panel in the Assistive Technology version.
It is probably worthwhile to state that each of these approaches is important dependent on the context that you want a particular keystroke. Is the keystroke dependent on the physical layout or virtual layout selected? Is the keystroke a character typed into the application with keyboard focus? Is the keystroke acting like it was typed on a the physical keyboard? Is the keystroke macro acting like it was typed on the virtual keyboard? Each can be valid and required depending on many factors. Supporting each possibility may explain one reason why the software has been around for 30 years.
Quick Reference:
%%knnn, e.g. %%k010 - uses the currently selected KMF (Build-A-Board layout) and looks up the virtual key / scan code information for this key, sends down/up keystrokes
%%snnn, e.g. %%s112 - sends the scancode, but processed internally. In most cases this will be the same virtual key code as specified, but it may be modified.
%%vnnn, e.g. %%v112 - sends the Windows Virtual Key (refer to Microsoft documentation) unmodified (note decimal notation, hex is not supported).
%%pnnn, e.g. %%p041 - uses the currently selected KMF (Build-A-Board layout) and looks up the virtual key / scan code information for this key, sends down/up keystrokes, and processes the key as if typed via the keyboard directly.
Key# Description
0 Escape Key
1 F1
2 F2
3 F3
4 F4
5 F5
6 F6
7 F7
8 F8
9 F9
10 F10
11 F11
12 F12
13 Select key
14 1/!
15 2/@
16 3/#
17 4/$
18 5/%
19 6/^
20 7/&
21 8/*
22 9/(
23 0/)
24 -/_
25 =/+
26 Back space
27 Tab
28 Q
29 W
30 E
31 R
32 T
33 Y
34 U
35 I
36 O
37 P
38 [/{
39 ]/}
40 Caps Lock
41 A
42 S
43 D
44 F
45 G
46 H
47 J
48 K
49 L
50 ;/:
51 '/"
52 Enter Key
53 Enter Key
54 Shift / Left Shift
55 Z
56 X
57 C
58 V
59 B
60 N
61 M
62 ,/<
63 ./>
64 //?
65 Shift / Right Shift
66 \/|
67 Control / Left Control
68 Alt / Left Alt
69 Space Bar
70 Alt / Right Alt / Alt-Gr
71 Control / Left Control
These are on the edit panel
72 Print Screen
73 Scroll Lock
74 Pause
75 Insert
76 Home
77 Page Up
78 Delete
79 End
80 Page Down
81 Up Arrow
82 Left Arrow
83 Down Arrow
84 Right Arrow
These are on the Numeric keypad panel
85 CL indicator / not processed as key
86 NL indicator / not processed as key
87 SL indicator / not processed as key
88 Num Lock
89 /
90 *
91 -
92 7
93 8
94 9
95 +
96 4
97 5
98 6
99 1
100 2
101 3
102 Enter / =
103 0
104 decimal point
As seen in ...