INKEY( ) Function

See Also

Returns a number corresponding to the first mouse click or key press in the type-ahead buffer.

Syntax

INKEY([nSeconds] [, cHideCursor])

Returns

Numeric

Arguments

nSeconds

Specifies how many seconds INKEY( ) waits for a keystroke. If nSeconds isn't included, INKEY( ) immediately returns a value for a keystroke. INKEY( ) waits indefinitely for a keystroke if nSeconds is 0.

cHideCursor

Shows or hides the cursor, or checks for a mouse click. To show the cursor, include S in cHideCursor. To hide the cursor, include H in cHideCursor. If both S and H are included in cHideCursor, the last character in cHideCursor takes precedence.

By default, INKEY( ) doesn't detect a mouse click. To check for a mouse click, include M in cHideCursor. If M is included in cHideCursor, INKEY( ) returns the value 151 for a single mouse click. Refer to the second example in the following table to see how you can check for a double click.

To check for a mouse click and show the cursor, include both M and S. To check for a mouse click and hide the cursor, include H and M.

When a keyboard macro is assigned to a key or key combination, you can include E in cHideCursor to expand the keyboard macro. When E is included, INKEY( ) returns a value corresponding to the first keystroke assigned to the keyboard macro. You can return successive values for each keystroke in a macro by repeatedly executing INKEY( ) with E included. If you omit E, INKEY( ) returns the value for the key or key combination that triggers the keyboard macro.

Any characters other than H, M, S, and E in cHideCursor are ignored.

The following table lists INKEY( ) function return values for keys alone and in combination with the SHIFT, CTRL, and ALT keys. A dash (–) indicates that the key combination returns no value.

Key Alone SHIFT CTRL ALT
F1 28 84 94 104
F2 –1 85 95 105
F3 –2 86 96 106
F4 –3 87 97 107
F5 –4 88 98 108
F6 –5 89 99 109
F7 –6 90 100 110
F8 –7 91 101 111
F9 –8 92 102 112
F10 –9 93 103 113
F11 133 135 137 139
F12 134 136 138 140
1 49 33 120
2 50 64 121
3 51 35 122
4 52 36 123
5 53 37 124
6 54 94 125
7 55 38 126
8 56 42 127
9 57 40 128
0 48 41 19
a 97 65 1 30
b 98 66 2 48
c 99 67 3 46
d 100 68 4 32
e 101 69 5 18
f 102 70 6 33
g 103 71 7 34
h 104 72 127 35
I 105 73 9 23
j 106 74 10 36
k 107 75 11 37
l 108 76 12 38
m 109 77 13 50
n 110 78 14 49
o 111 79 15 24
p 112 80 16 25
q 113 81 17 16
r 114 82 18 19
s 115 83 19 31
t 116 84 20 20
u 117 85 21 22
v 118 86 22 47
w 119 87 23 17
x 120 88 24 45
y 121 89 25 21
z 122 90 26 44
INS 22 22 146 162
HOME 1 55 29 151
DEL 7 7 147 163
END 6 49 23 159
PAGE UP 18 57 31 153
PAGE DOWN 3 51 30 161
UP ARROW 5 56 141 152
DOWN ARROW 24 50 145 160
RIGHT ARROW 4 54 2 157
LEFT ARROW 19 52 26 155
ESC 27 –/27 –*/27 –*/1
ENTER 13 13 10 –/166
BACKSPACE 127 127 127 14
TAB 9 15 148/* *
SPACEBAR 32 32 32/– 57

* Keystroke reserved by Windows.

Remarks

INKEY( ) returns 0 if a key isn't pressed. If there are several keys in the type-ahead buffer, INKEY( ) returns the value of the first key entered in the buffer.