How to Just Trap CTRL, ALT, or SHIFT Keys in Basic

Article translations Article translations
Article ID: 59131 - View products that this article applies to.
This article was previously published under Q59131
Expand all | Collapse all

On This Page

SUMMARY

Normally, to trap CTRL (CONTROL), ALT, and SHIFT in combination with other keys, you would set the bits for these keys in the first byte (keyboard flag) of the two CHR$() bytes in the KEY statement.

However, to trap the CTRL, ALT, and SHIFT keys alone (not in combination with other keys), the keyboard flag in the KEY statement should be CHR$(0) for the standard keyboard or CHR$(&H80) for keys specific to an extended keyboard.

MORE INFORMATION

The syntax of the KEY statement (where n=15 through 25 can be user-defined keys) is as follows:
KEY n, CHR$(keyboardflag) + CHR$(scancode)
The following table lists the scan codes for the CTRL, ALT and SHIFT keys:
   Key           Scan Code
   ---           ---------
   CTRL          &H1D
   ALT           &H38
   LEFT SHIFT    &H2A
   RIGHT SHIFT   &H36
				
NOTE: To trap the RIGHT CTRL or RIGHT ALT key (found only on an extended 101 keyboard), the extended keyboard flag (&H80) must be used in the keyboard flag byte.

Code Example

The following code example traps the CTRL, ALT, and SHIFT keys alone:
' NOTE:  This program requires NUM LOCK and CAPS LOCK to be off.
KEY 15, CHR$(&H0) + CHR$(&H1D)     ' LEFT CTRL (on
ON KEY(15) GOSUB Ctrl              ' Standard or Extended keyboard).
KEY(15) ON

KEY 16, CHR$(&H80) + CHR$(&H1D)    ' RIGHT CTRL (on Extended keyboard).
ON KEY(16) GOSUB Ctrl
KEY(16) ON

KEY 17, CHR$(&H0) + CHR$(&H38)     ' LEFT ALT (on
ON KEY(17) GOSUB alt               ' Standard or Extended keyboard).
KEY(17) ON

KEY 18, CHR$(&H80) + CHR$(&H38)    ' RIGHT ALT (on Extended keyboard).
ON KEY(18) GOSUB Alt
KEY(18) ON

KEY 19, CHR$(&H0) + CHR$(&H2A)     ' LEFT SHIFT (on
ON KEY(19) GOSUB Shift             ' Standard or Extended keyboard).
KEY(19) ON

KEY 20, CHR$(&H0) + CHR$(&H36)     ' RIGHT SHIFT (on
ON KEY(20) GOSUB Shift             ' Standard or Extended keyboard).
KEY(20) ON

WHILE INKEY$ <> CHR$(27): WEND     ' Press ESC to end.
END

Ctrl: PRINT "CTRL"
RETURN

Alt:  PRINT "ALT"
RETURN

Shift:  PRINT "SHIFT"
RETURN
				

Properties

Article ID: 59131 - Last Review: August 16, 2005 - Revision: 2.1
APPLIES TO
  • Microsoft Visual Basic for MS-DOS
  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 for MS-DOS
  • Microsoft BASIC Compiler 6.0
  • Microsoft BASIC Compiler 6.0b
  • Microsoft BASIC Professional Development System 7.0
Keywords: 
KB59131
Retired KB Content Disclaimer
This article was written about products for which Microsoft no longer offers support. Therefore, this article is offered "as is" and will no longer be updated.

Give Feedback

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com