Let’s face it. If you’ve been doing test automation for any length of time you’ve faced situations in which you need to perform mouse or keyboard actions using screen coordinates.
When the Set and Type Methods Suck:
Even though most objects have Set and Type methods, these methods — for whatever reason — may not work in all situations. If they don’t then your next step may be to try VBScript's sendkey method. But even sendkeys sometimes do not have a way to perform certain actions, such as pressing the left alt key. Hence the need for QTP’s undocumented Device Replay features.
No ASCII No Problem:
A few months back, I posted an article outlining three different ways to use keyboard input in QTP. I recently came across some more Device Replay Key codes for the PressKey, Keydown, Keyup and PressNKeys that I’d like to share with you. These methods are particularly helpful in certain situations in which you need to perform an action using a code that does not have an ASCII equivalent.
Chart of the keyboard key codes for the PressKey, Keydown, Keyup and PressNKeys:
The number keys:
Keystroke |
Code to use |
1 |
1 |
2 |
2 |
3 |
3 |
4 |
4 |
5 |
5 |
6 |
6 |
7 |
7 |
8 |
8 |
9 |
9 |
The keypad number keys:
Keystroke |
Code to use |
1 |
79 |
2 |
80 |
3 |
81 |
4 |
75 |
5 |
76 |
6 |
77 |
7 |
71 |
8 |
72 |
9 |
73 |
0 |
82 |
The Function keys:
Keystroke |
Code to use |
F1 |
59 |
F2 |
60 |
F3 |
61 |
F4 |
62 |
F5 |
63 |
F6 |
64 |
F7 |
65 |
F8 |
66 |
F9 |
67 |
F10 |
68 |
F11 |
87 |
F12 |
88 |
The Letter keys:
Keystroke |
Code to use |
A |
30 |
B |
48 |
C |
46 |
D |
32 |
E |
18 |
F |
33 |
G |
34 |
H |
35 |
I |
23 |
J |
36 |
K |
37 |
L |
38 |
M |
50 |
N |
49 |
O |
24 |
P |
25 |
Q |
16 |
R |
19 |
S |
31 |
T |
20 |
U |
22 |
V |
47 |
W |
17 |
X |
45 |
Y |
21 |
Z |
44 |
The Enter, Space, Shift, Ctrl and Alt keys:
Keystroke |
Code to use |
ENTER |
28 |
SPACE |
57 |
LEFT SHIFT |
42 |
LEFT CTRL |
29 |
LEFT ALT |
56 |
RIGHT SHIFT |
54 |
RIGHT CTRL |
157 |
RIGHT ALT |
184 |
; |
39 |
‘ |
40 |
, |
51 |
. |
52 |
/ |
53 |
The Weird/Other keys:
Keystroke |
Code to use |
– |
12 |
[ |
26 |
] |
27 |
` |
41 |
= |
13 |
BACKSPACE |
14 |
CAPSLOCK |
58 |
DELETE |
211 |
DOWN |
208 |
END |
207 |
HOME |
199 |
INSERT |
210 |
LEFT |
203 |
NUMLOCK |
69 |
KEYPAD DECIMAL |
83 |
KEYPAD DIVIDE |
181 |
KEYPAD ENTER |
156 |
KEYPAD MINUS |
74 |
KEYPAD MULTIPLY |
55 |
PAUSE |
116 |
PAGE DOWN |
209 |
PAGE UP |
201 |
RIGHT |
205 |
SCROLL LOCK |
70 |
TAB |
15 |
UP |
20O |