Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
Article Q39252
◄Contents► ◄Index► ◄Back►
─────────────────────────────────────────────────────────────────────────────
◄Knowledge Base Contents► ◄Knowledge Base Index►
ON KEY Trapping CTRL, SHIFT, CAPS LOCK, NUM LOCK Combinations - Q39252
Pressing any key in combination with CTRL, SHIFT, ALT, CAPS LOCK, or
NUM LOCK changes the keyboard scan code. To trap combinations of keys,
the KEY statement requires adding together the values of the keyboard
flags as shown in the code example listed below.
The following is a code example:
' To try this example in VBDOS.EXE:
' 1. From the File menu, choose New Project.
' 2. Copy the code example to the Code window.
' 3. Press F5 to run the program.
CONST alt = &H8
CONST nodal = &H0
CONST leftshift = &H1
CONST rightshift = &H2
CONST ctrl = &H4
CONST numlock = &H20
CONST capslock = &H40
CONST extendedkeyboard = &H80
CONST left = &H4B
CONST right = &H4D
CONST up = &H48
CONST down = &H50
CONST C = &H2E
CONST scrolllock = &H46
KEY 15, CHR$(extendedkeyboard + numlock) + CHR$(left)
KEY 16, CHR$(extendedkeyboard + numlock) + CHR$(right)
KEY 17, CHR$(extendedkeyboard + numlock) + CHR$(up)
KEY 18, CHR$(extendedkeyboard + numlock) + CHR$(down)
KEY 19, CHR$(ctrl + capslock) + CHR$(C)
KEY 20, CHR$(extendedkeyboard + ctrl + numlock) + CHR$(scrolllock)
ON KEY(15) GOSUB left
ON KEY(16) GOSUB right
ON KEY(17) GOSUB up
ON KEY(18) GOSUB down
ON KEY(19) GOSUB break
ON KEY(20) GOSUB break
KEY(15) ON
KEY(16) ON
KEY(17) ON
KEY(18) ON
KEY(19) ON
KEY(20) ON
WHILE UCASE$(INKEY$) <> UCASE$("q")
WEND
END
left:
PRINT "left"
RETURN
right:
PRINT "right"
RETURN
up:
PRINT "up"
RETURN
down:
PRINT "down"
RETURN
break:
PRINT "break"
RETURN