Progress
Programming
Handbook


Key Codes and Key Labels

All Progress keys have both a code and a label. The key code is a Progress internal identifier for the key. Progress stores all key codes in 16-bit words. The structure of a key code is as follows:

This structure allows Progress to respond to a wide variety of key combinations. For example, you can write a trigger that fires when the user presses CTRLSHIFTALTF1. Figure 6–3 shows how Progress generates key codes when different keys are pressed.

Figure 6–3: Key Codes

Progress uses this scheme wherever possible. However, some keys are assigned key codes that do not fit into this scheme. The following rules determine what key codes are outside of this scheme:

Progress provides more than one key label for certain key codes. The key labels in Table 6–2 are the preferred labels, but you can also use the labels in Table 6–3.

Table 6–2: Key Codes and Key Labels
Key Code
Key Label
0
CTRL@
1 through 7
CTRLA through CTRLG
8
BACKSPACE
9
TAB
10 through 12
CTRLJ through CTRLL
13
ENTER (Windows)
RETURN (UNIX)
14 through 26
CTRLN through CTRLZ
27
ESC
28
CTRL\
29
CTRL]
30
CTRL^
31
CTRL_
32 through 126
Corresponding character
127
DEL
128 through 255
Corresponding extended character
300 through 399
F0 through F99
400 through 499
PF0 through PF99
501
CURSORUP
502
CURSORDOWN
503
CURSORRIGHT
504
CURSORLEFT
505
HOME
506
END
507
PAGEUP
508
PAGEDOWN
509
BACKTAB
510
INS
511
HELPKEY
512
DELETE
513
EXECUTE
514
PAGE
515
FIND
516
INSLINE
517
DELLINE
518
LINEERASE
519
PAGEERASE
520
SHIFTBACKSPACE
521
SHIFTTAB
522
EXIT
535
ERASE
536
WHITE
537
BLUE
538
RED
539
RESET
541
CTRLBREAK
551 through 560
U1 through U10
609
MOUSESELECTUP
610
MOUSEMOVEUP
611
MOUSEMENUUP
612
MOUSEEXTENDUP
617
MOUSESELECTDOWN
618
MOUSEMOVEDOWN
619
MOUSEMENUDOWN
620
MOUSEEXTENDDOWN
625
MOUSESELECTCLICK
626
MOUSEMOVECLICK
627
MOUSEMENUCLICK
628
MOUSEEXTENDCLICK
640
MOUSEMOVE
649
MOUSESELECTDBLCLICK
650
MOUSEMOVEDBLCLICK
651
MOUSEMENUDBLCLICK
652
MOUSEEXTENDDBLCLICK
812 through 911
SHIFTF0 through SHIFTF99
912 through 1011
SHIFT PF0 through SHIFTPF99
1013
SHIFTCURSORUP
1014
SHIFTCURSORDOWN
1015
SHIFTCURSORRIGHT
1016
SHIFTCURSORLEFT
1017
SHIFTHOME
1018
SHIFTEND
1019
SHIFTPAGEUP
1020
SHIFTPAGEDOWN
1021
SHIFTBACKTAB
1022
SHIFTINS
1023
SHIFTHELPKEY
1024
ALTCTRL@
1025 through 1031
ALTCTRLA through ALTCTRLG
1032
ALTBACKSPACE
1033
ALTTAB
1034 through 1036
ALTCTRLJ through ALTCTRLL
1037
ALTRETURN
1038 through 1050
ALTCTRLN through ALTCTRLZ
1051
ALTESC
1052
ALTCTRL\
1053
ALTCTRL]
1054
ALTCTRL^
1055
ALTCTRL_
1057 through 1150
ALT–plus corresponding character
1151
ALTDEL
1152 through 1279
ALT–plus corresponding extended character
1324 through 1423
ALTF0 through ALTF99
1424 through 1523
ALTPF0 through ALTPF99
1525
ALTCURSORUP
1526
ALTCURSORDOWN
1527
ALTCURSORRIGHT
1528
ALTCURSORLEFT
1529
ALTHOME
1530
ALTEND
1531
ALTPAGEUP
1532
ALTPAGEDOWN
1533
ALTBACKTAB
1534
ALTINS
1535
ALTHELPKEY
1536
ALTDELETE
1537
ALTEXECUTE
1538
ALTPAGE
1539
ALTFIND
1540
ALTINSLINE
1541
ALTDELLINE
1542
ALTLINEERASE
1543
ALTPAGEERASE
1544
ALTSHIFTBACKSPACE
1545
ALTSHIFTTAB
1546
ALTEXIT
1549 through 1558
ALTU1 through ALTU10
1559
ALTERASE
1560
ALTWHITE
1561
ALTBLUE
1562
ALTRED
1563
ALTRESET
1565
ALTCTRLBREAK
1575 through 1584
ALTU1 through ALTU10
1663
SHIFTALTDEL
1664 through 1791
SHIFTALT–plus corresponding extended character
1836 through 1935
SHIFTALTF0 through SHIFTALTF99
1936 through 2035
SHIFTALTPF0 through SHIFTALTPF99
2037
SHIFTALTCURSORUP
2038
SHIFTALTCURSORDOWN
2039
SHIFTALTCURSORRIGHT
2040
SHIFTALTCURSORLEFT
2041
SHIFTALTHOME
2042
SHIFTALTEND
2043
SHIFTALTPAGEUP
2044
SHIFTALTPAGEDOWN
2045
SHIFTALTBACKTAB
2046
SHIFTALTINS
2047
SHIFTALTHELPKEY
2056
CTRLBACKSPACE
2057
CTRLTAB
2075
CTRLESC
2080 through 2111
CTRL–plus corresponding character
2171 through 2174
CTRL–plus corresponding character
2175
CTRLDEL
2209 through 2303
CTRL–plus corresponding extended character
2348 through 2447
CTRLF0 through CTRLF99
2448 through 2547
CTRLPF0 through CTRLPF99
2549
CTRLCURSORUP
2550
CTRLCURSORDOWN
2551
CTRLCURSORRIGHT
2552
CTRLCURSORLEFT
2553
CTRLHOME
2554
CTRLEND
2555
CTRLPAGEUP
2556
CTRLPAGEDOWN
2557
CTRLBACKTAB
2558
CTRLINS
2559
CTRLHELPKEY
2560
CTRLDELETE
2561
CTRLEXECUTE
2562
CTRLPAGE
2563
CTRLFIND
2564
CTRLINSLINE
2565
CTRLDELLINE
2566
CTRLLINEERASE
2567
CTRLPAGEERASE
2568
CTRLSHIFTBACKSPACE
2569
CTRLSHIFTTAB
2570
CTRLEXIT
2573
CTRLSHIFTRETURN
2583
CTRLERASE
2584
CTRLWHITE
2585
CTRLBLUE
2586
CTRLRED
2587
CTRLRESET
2559 through 2608
CTRLU1 through CTRLU10
2860 through 2859
CTRLSHIFTF0 through CTRLSHIFTF99
2960 through 3059
CTRLSHIFTPF0 through CTRLSHIFTPF99
3061
CTRLSHIFTCURSORUP
3062
CTRLSHIFTCURSORDOWN
3063
CTRLSHIFTCURSORRIGHT
3064
CTRLSHIFTCURSORLEFT
3065
CTRLSHIFTHOME
3066
CTRLSHIFTEND
3067
CTRLSHIFTPAGEUP
3068
CTRLSHIFTPAGEDOWN
3069
CTRLSHIFTBACKTAB
3070
CTRLSHIFTINS
3071
CTRLSHIFTHELPKEY
3104 through 3135
CTRLALT–plus corresponding character
3163
CTRLALT[
3164
CTRLALT\
3165
CTRLALT]
3166
CTRLALT^
3167
CTRLALT_
3168
CTRLALT
3195 through 3198
CTRLALT–plus corresponding character
3199
CTRLALTDEL
3233 through 3327
CTRLALT–plus corresponding extended character
3372 through 3471
CTRLALTF0 through CTRLALTF10
3472 through 3571
CTRLALTPF0 through CTRLALTPF99
3573
CTRLALTCURSORUP
3574
CTRLALTCURSORDOWN
3575
CTRLALTCURSORRIGHT
3576
CTRLALTCURSORLEFT
3577
CTRLALTHOME
3578
CTRLALTEND
3579
CTRLALTPAGEUP
3580
CTRLALTPAGEDOWN
3581
CTRLALTBACKTAB
3582
CTRLALTINS
3583
CTRLALTHELPKEY
3585
CTRLALTEXECUTE
3586
CTRLALTPAGE
3587
CTRLALTFIND
3588
CTRLALTINSLINE
3589
CTRLALTDELLINE
3590
CTRLALTLINEERASE
3591
CTRLALTPAGEERASE
3592
CTRLSHIFTALTBACKSPACE
3593
CTRLSHIFTALTTAB
3594
CTRLALTEXIT
3597
CTRLSHIFTALTRETURN
3607
CTRLALTERASE
3608
CTRLALTWHITE
3609
CTRLALTBLUE
3610
CTRLALTRED
3611
CTRLALTRESET
3623 through 3632
CTRLALTU1 through CTRLALTU10
3884 through 3983
CTRLSHIFTALTF0 through CTRLSHIFTALTF99
3994 through 4083
CTRLSHIFTALTPF0 through CTRLSHIFTALTPF99
4085
CTRLSHIFTALTCURSORUP
4086
CTRLSHIFTALTCURSORDOWN
4087
CTRLSHIFTALTCURSORRIGHT
4088
CTRLSHIFTALTCURSORLEFT
4089
CTRLSHIFTALTHOME
4090
CTRLSHIFTALTEND
4091
CTRLSHIFTALTPAGEUP
4092
CTRLSHIFTALTPAGEDOWN
4093
CTRLSHIFTALTBACKTAB
4094
CTRLSHIFTALTINS
4095
CTRLSHIFTALTHELPKEY

Table 6–2 shows the key labels returned for each key code by the KEYLABEL function. In addition to these key labels, some key codes have alternative labels. Although the KEYLABEL function does not return these values, if you can pass any of these labels to the KEYCODE function, the corresponding key code is returned. Table 6–3 lists the alternate key labels.

Table 6–3: Alternate Key Labels
Key Code
Alternate Key Label
7
BELL
8
BS
10
LINEFEED, LF
12
FORMFEED, FF
13
RETURN (Windows)
ENTER (UNIX)
27
ESCAPE
127
CANCEL
501
UP, UPARROW
502
DOWN, DOWNARROW
503
RIGHT, RIGHTARROW
504
LEFT, LEFTARROW
505
ESCH
507
PGUP, PREVPAGE, PREVSCRN
508
PGDN, NEXTPAGE, NEXTSCRN
509
SHIFTTAB (UNIX),
BACKTAB (Windows)
510
INSERT, INSCHAR, INSC, INSERTHERE
512
DELCHAR, DELETECHAR, DELC
516
INSL, LINEINS
517
DELL, LINEDEL


Copyright © 2004 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095