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.