VIRTUAL KEY CODES

These are the virtual key codes defined by Windows SDK / Win32 for keyboard & mouse.

Constant
Value
Description

VK_LBUTTON

0x01

Left mouse button

VK_RBUTTON

0x02

Right mouse button

VK_CANCEL

0x03

Control-break processing

VK_MBUTTON

0x04

Middle mouse button

VK_XBUTTON1

0x05

X1 mouse button

VK_XBUTTON2

0x06

X2 mouse button

0x07

Reserved

VK_BACK

0x08

Backspace key

VK_TAB

0x09

Tab key

0x0A-0B

Reserved

VK_CLEAR

0x0C

Clear key

VK_RETURN

0x0D

Enter key

0x0E-0F

Unassigned

VK_SHIFT

0x10

Shift key

VK_CONTROL

0x11

Ctrl key

VK_MENU

0x12

Alt key

VK_PAUSE

0x13

Pause key

VK_CAPITAL

0x14

Caps lock key

VK_KANA

0x15

IME Kana mode

VK_HANGUL

0x15

IME Hangul mode

VK_IME_ON

0x16

IME On

VK_JUNJA

0x17

IME Junja mode

VK_FINAL

0x18

IME final mode

VK_HANJA

0x19

IME Hanja mode

VK_KANJI

0x19

IME Kanji mode

VK_IME_OFF

0x1A

IME Off

VK_ESCAPE

0x1B

Esc key

VK_CONVERT

0x1C

IME convert

VK_NONCONVERT

0x1D

IME nonconvert

VK_ACCEPT

0x1E

IME accept

VK_MODECHANGE

0x1F

IME mode change request

VK_SPACE

0x20

Spacebar key

VK_PRIOR

0x21

Page up key

VK_NEXT

0x22

Page down key

VK_END

0x23

End key

VK_HOME

0x24

Home key

VK_LEFT

0x25

Left arrow key

VK_UP

0x26

Up arrow key

VK_RIGHT

0x27

Right arrow key

VK_DOWN

0x28

Down arrow key

VK_SELECT

0x29

Select key

VK_PRINT

0x2A

Print key

VK_EXECUTE

0x2B

Execute key

VK_SNAPSHOT

0x2C

Print screen key

VK_INSERT

0x2D

Insert key

VK_DELETE

0x2E

Delete key

VK_HELP

0x2F

Help key

0

0x30

0 key

1

0x31

1 key

2

0x32

2 key

3

0x33

3 key

4

0x34

4 key

5

0x35

5 key

6

0x36

6 key

7

0x37

7 key

8

0x38

8 key

9

0x39

9 key

0x3A-40

Undefined

A

0x41

A key

B

0x42

B key

C

0x43

C key

D

0x44

D key

E

0x45

E key

F

0x46

F key

G

0x47

G key

H

0x48

H key

I

0x49

I key

J

0x4A

J key

K

0x4B

K key

L

0x4C

L key

M

0x4D

M key

N

0x4E

N key

O

0x4F

O key

P

0x50

P key

Q

0x51

Q key

R

0x52

R key

S

0x53

S key

T

0x54

T key

U

0x55

U key

V

0x56

V key

W

0x57

W key

X

0x58

X key

Y

0x59

Y key

Z

0x5A

Z key

VK_LWIN

0x5B

Left Windows logo key

VK_RWIN

0x5C

Right Windows logo key

VK_APPS

0x5D

Application key

0x5E

Reserved

VK_SLEEP

0x5F

Computer Sleep key

VK_NUMPAD0

0x60

Numeric keypad 0 key

VK_NUMPAD1

0x61

Numeric keypad 1 key

VK_NUMPAD2

0x62

Numeric keypad 2 key

VK_NUMPAD3

0x63

Numeric keypad 3 key

VK_NUMPAD4

0x64

Numeric keypad 4 key

VK_NUMPAD5

0x65

Numeric keypad 5 key

VK_NUMPAD6

0x66

Numeric keypad 6 key

VK_NUMPAD7

0x67

Numeric keypad 7 key

VK_NUMPAD8

0x68

Numeric keypad 8 key

VK_NUMPAD9

0x69

Numeric keypad 9 key

VK_MULTIPLY

0x6A

Multiply key

VK_ADD

0x6B

Add key

VK_SEPARATOR

0x6C

Separator key

VK_SUBTRACT

0x6D

Subtract key

VK_DECIMAL

0x6E

Decimal key

VK_DIVIDE

0x6F

Divide key

VK_F1

0x70

F1 key

VK_F2

0x71

F2 key

VK_F3

0x72

F3 key

VK_F4

0x73

F4 key

VK_F5

0x74

F5 key

VK_F6

0x75

F6 key

VK_F7

0x76

F7 key

VK_F8

0x77

F8 key

VK_F9

0x78

F9 key

VK_F10

0x79

F10 key

VK_F11

0x7A

F11 key

VK_F12

0x7B

F12 key

VK_F13

0x7C

F13 key

VK_F14

0x7D

F14 key

VK_F15

0x7E

F15 key

VK_F16

0x7F

F16 key

VK_F17

0x80

F17 key

VK_F18

0x81

F18 key

VK_F19

0x82

F19 key

VK_F20

0x83

F20 key

VK_F21

0x84

F21 key

VK_F22

0x85

F22 key

VK_F23

0x86

F23 key

VK_F24

0x87

F24 key

0x88-8F

Reserved

VK_NUMLOCK

0x90

Num lock key

VK_SCROLL

0x91

Scroll lock key

0x92-96

OEM specific

0x97-9F

Unassigned

VK_LSHIFT

0xA0

Left Shift key

VK_RSHIFT

0xA1

Right Shift key

VK_LCONTROL

0xA2

Left Ctrl key

VK_RCONTROL

0xA3

Right Ctrl key

VK_LMENU

0xA4

Left Alt key

VK_RMENU

0xA5

Right Alt key

VK_BROWSER_BACK

0xA6

Browser Back key

VK_BROWSER_FORWARD

0xA7

Browser Forward key

VK_BROWSER_REFRESH

0xA8

Browser Refresh key

VK_BROWSER_STOP

0xA9

Browser Stop key

VK_BROWSER_SEARCH

0xAA

Browser Search key

VK_BROWSER_FAVORITES

0xAB

Browser Favorites key

VK_BROWSER_HOME

0xAC

Browser Start and Home key

VK_VOLUME_MUTE

0xAD

Volume Mute key

VK_VOLUME_DOWN

0xAE

Volume Down key

VK_VOLUME_UP

0xAF

Volume Up key

VK_MEDIA_NEXT_TRACK

0xB0

Next Track key

VK_MEDIA_PREV_TRACK

0xB1

Previous Track key

VK_MEDIA_STOP

0xB2

Stop Media key

VK_MEDIA_PLAY_PAUSE

0xB3

Play/Pause Media key

VK_LAUNCH_MAIL

0xB4

Start Mail key

VK_LAUNCH_MEDIA_SELECT

0xB5

Select Media key

VK_LAUNCH_APP1

0xB6

Start Application 1 key

VK_LAUNCH_APP2

0xB7

Start Application 2 key

0xB8-B9

Reserved

VK_OEM_1

0xBA

It can vary by keyboard. For the US ANSI keyboard , the Semiсolon and Colon key

VK_OEM_PLUS

0xBB

For any country/region, the Equals and Plus key

VK_OEM_COMMA

0xBC

For any country/region, the Comma and Less Than key

VK_OEM_MINUS

0xBD

For any country/region, the Dash and Underscore key

VK_OEM_PERIOD

0xBE

For any country/region, the Period and Greater Than key

VK_OEM_2

0xBF

It can vary by keyboard. For the US ANSI keyboard, the Forward Slash and Question Mark key

VK_OEM_3

0xC0

It can vary by keyboard. For the US ANSI keyboard, the Grave Accent and Tilde key

0xC1-C2

Reserved

VK_GAMEPAD_A

0xC3

Gamepad A button

VK_GAMEPAD_B

0xC4

Gamepad B button

VK_GAMEPAD_X

0xC5

Gamepad X button

VK_GAMEPAD_Y

0xC6

Gamepad Y button

VK_GAMEPAD_RIGHT_SHOULDER

0xC7

Gamepad Right Shoulder button

VK_GAMEPAD_LEFT_SHOULDER

0xC8

Gamepad Left Shoulder button

VK_GAMEPAD_LEFT_TRIGGER

0xC9

Gamepad Left Trigger button

VK_GAMEPAD_RIGHT_TRIGGER

0xCA

Gamepad Right Trigger button

VK_GAMEPAD_DPAD_UP

0xCB

Gamepad D-pad Up button

VK_GAMEPAD_DPAD_DOWN

0xCC

Gamepad D-pad Down button

VK_GAMEPAD_DPAD_LEFT

0xCD

Gamepad D-pad Left button

VK_GAMEPAD_DPAD_RIGHT

0xCE

Gamepad D-pad Right button

VK_GAMEPAD_MENU

0xCF

Gamepad Menu/Start button

VK_GAMEPAD_VIEW

0xD0

Gamepad View/Back button

VK_GAMEPAD_LEFT_THUMBSTICK_BUTTON

0xD1

Gamepad Left Thumbstick button

VK_GAMEPAD_RIGHT_THUMBSTICK_BUTTON

0xD2

Gamepad Right Thumbstick button

VK_GAMEPAD_LEFT_THUMBSTICK_UP

0xD3

Gamepad Left Thumbstick up

VK_GAMEPAD_LEFT_THUMBSTICK_DOWN

0xD4

Gamepad Left Thumbstick down

VK_GAMEPAD_LEFT_THUMBSTICK_RIGHT

0xD5

Gamepad Left Thumbstick right

VK_GAMEPAD_LEFT_THUMBSTICK_LEFT

0xD6

Gamepad Left Thumbstick left

VK_GAMEPAD_RIGHT_THUMBSTICK_UP

0xD7

Gamepad Right Thumbstick up

VK_GAMEPAD_RIGHT_THUMBSTICK_DOWN

0xD8

Gamepad Right Thumbstick down

VK_GAMEPAD_RIGHT_THUMBSTICK_RIGHT

0xD9

Gamepad Right Thumbstick right

VK_GAMEPAD_RIGHT_THUMBSTICK_LEFT

0xDA

Gamepad Right Thumbstick left

VK_OEM_4

0xDB

It can vary by keyboard. For the US ANSI keyboard, the Left Brace key

VK_OEM_5

0xDC

It can vary by keyboard. For the US ANSI keyboard, the Backslash and Pipe key

VK_OEM_6

0xDD

It can vary by keyboard. For the US ANSI keyboard, the Right Brace key

VK_OEM_7

0xDE

It can vary by keyboard. For the US ANSI keyboard, the Apostrophe and Double Quotation Mark key

VK_OEM_8

0xDF

It can vary by keyboard. For the Canadian CSA keyboard, the Right Ctrl key

0xE0

Reserved

0xE1

OEM specific

VK_OEM_102

0xE2

It can vary by keyboard. For the European ISO keyboard, the Backslash and Pipe key

0xE3-E4

OEM specific

VK_PROCESSKEY

0xE5

IME PROCESS key

0xE6

OEM specific

VK_PACKET

0xE7

Used to pass Unicode characters as if they were keystrokes. The VK_PACKET key is the low word of a 32-bit Virtual Key value used for non-keyboard input methods. For more information, see Remark in KEYBDINPUT, SendInput, WM_KEYDOWN, and WM_KEYUP

0xE8

Unassigned

0xE9-F5

OEM specific

VK_ATTN

0xF6

Attn key

VK_CRSEL

0xF7

CrSel key

VK_EXSEL

0xF8

ExSel key

VK_EREOF

0xF9

Erase EOF key

VK_PLAY

0xFA

Play key

VK_ZOOM

0xFB

Zoom key

VK_NONAME

0xFC

Reserved

VK_PA1

0xFD

PA1 key

VK_OEM_CLEAR

0xFE

Clear key

Last updated