IMG Home PageIMG ProductsProduct DownloadsOrdering InformationTechnical Support and Frequently Asked QuestionsDeveloper's Corner and UtilitiesAbout IMG
CustomersIMG ResellersMedia InformationIMG Events / Trade ShowsUseful LinksIMG Contact InformationIMG Information / Policies


Build-A-Macro Notes

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


IMG Home PageIMG ProductsProduct DownloadsOrdering InformationTechnical Support and Frequently Asked QuestionsDeveloper's Corner and UtilitiesAbout IMG
CustomersIMG ResellersMedia InformationIMG Events / Trade ShowsUseful LinksIMG Contact InformationIMG Information / Policies


As seen in ...

Yahoo!finance