module AutoClick::VirtualKey

Overview

Virtual Key Code mappings for AutoClick

This module provides mapping between key names and Windows Virtual Key Codes supporting multiple naming conventions for flexibility.

Extended Modules

Defined in:

auto_click/virtual_key.cr

Constant Summary

KEY_MAP = {"a" => VK_A, "b" => VK_B, "c" => VK_C, "d" => VK_D, "e" => VK_E, "f" => VK_F, "g" => VK_G, "h" => VK_H, "i" => VK_I, "j" => VK_J, "k" => VK_K, "l" => VK_L, "m" => VK_M, "n" => VK_N, "o" => VK_O, "p" => VK_P, "q" => VK_Q, "r" => VK_R, "s" => VK_S, "t" => VK_T, "u" => VK_U, "v" => VK_V, "w" => VK_W, "x" => VK_X, "y" => VK_Y, "z" => VK_Z, "0" => VK_0, "1" => VK_1, "2" => VK_2, "3" => VK_3, "4" => VK_4, "5" => VK_5, "6" => VK_6, "7" => VK_7, "8" => VK_8, "9" => VK_9, "f1" => VK_F1, "f2" => VK_F2, "f3" => VK_F3, "f4" => VK_F4, "f5" => VK_F5, "f6" => VK_F6, "f7" => VK_F7, "f8" => VK_F8, "f9" => VK_F9, "f10" => VK_F10, "f11" => VK_F11, "f12" => VK_F12, "shift" => VK_SHIFT, "leftshift" => VK_LSHIFT, "rightshift" => VK_RSHIFT, "ctrl" => VK_CONTROL, "control" => VK_CONTROL, "leftctrl" => VK_LCONTROL, "rightctrl" => VK_RCONTROL, "alt" => VK_MENU, "leftalt" => VK_LMENU, "rightalt" => VK_RMENU, "win" => VK_LWIN, "windows" => VK_LWIN, "leftwin" => VK_LWIN, "rightwin" => VK_RWIN, "space" => VK_SPACE, "enter" => VK_RETURN, "tab" => VK_TAB, "esc" => VK_ESCAPE, "escape" => VK_ESCAPE, "backspace" => VK_BACK, "delete" => VK_DELETE, "insert" => VK_INSERT, "home" => VK_HOME, "end" => VK_END, "pageup" => VK_PRIOR, "pagedown" => VK_NEXT, "capslock" => VK_CAPITAL, "numlock" => VK_NUMLOCK, "pause" => VK_PAUSE, "printscreen" => VK_SNAPSHOT, "left" => VK_LEFT, "right" => VK_RIGHT, "up" => VK_UP, "down" => VK_DOWN, "semicolon" => VK_OEM_1, "equal" => VK_OEM_PLUS, "comma" => VK_OEM_COMMA, "hyphen" => VK_OEM_MINUS, "period" => VK_OEM_PERIOD, "slash" => VK_OEM_2, "grave" => VK_OEM_3, "bracket" => VK_OEM_4, "backslash" => VK_OEM_5, "closebracket" => VK_OEM_6, "quote" => VK_OEM_7}

Key name to virtual key code mapping

SPECIAL_CHAR_MAP = {'!' => {"1", true}, '@' => {"2", true}, '#' => {"3", true}, '$' => {"4", true}, '%' => {"5", true}, '^' => {"6", true}, '&' => {"7", true}, '*' => {"8", true}, '(' => {"9", true}, ')' => {"0", true}, '_' => {"-", true}, '+' => {"=", true}, '{' => {"[", true}, '}' => {"]", true}, '|' => {"\\", true}, ':' => {";", true}, '"' => {"'", true}, '<' => {",", true}, '>' => {".", true}, '?' => {"/", true}, '~' => {"`", true}}

Special character to key combination mapping

VK_0 = 48

Number keys (main keyboard)

VK_1 = 49
VK_2 = 50
VK_3 = 51
VK_4 = 52
VK_5 = 53
VK_6 = 54
VK_7 = 55
VK_8 = 56
VK_9 = 57
VK_A = 65

Letter keys

VK_ADD = 107
VK_APPS = 93
VK_B = 66
VK_BACK = 8
VK_C = 67
VK_CANCEL = 3
VK_CAPITAL = 20
VK_CLEAR = 12
VK_CONTROL = 17
VK_D = 68
VK_DECIMAL = 110
VK_DELETE = 46
VK_DIVIDE = 111
VK_DOWN = 40
VK_E = 69
VK_END = 35
VK_ESCAPE = 27
VK_EXECUTE = 43
VK_F = 70
VK_F1 = 112

Function keys

VK_F10 = 121
VK_F11 = 122
VK_F12 = 123
VK_F13 = 124
VK_F14 = 125
VK_F15 = 126
VK_F16 = 127
VK_F17 = 128
VK_F18 = 129
VK_F19 = 130
VK_F2 = 113
VK_F20 = 131
VK_F21 = 132
VK_F22 = 133
VK_F23 = 134
VK_F24 = 135
VK_F3 = 114
VK_F4 = 115
VK_F5 = 116
VK_F6 = 117
VK_F7 = 118
VK_F8 = 119
VK_F9 = 120
VK_G = 71
VK_H = 72
VK_HELP = 47
VK_HOME = 36
VK_I = 73
VK_INSERT = 45
VK_J = 74
VK_K = 75
VK_L = 76
VK_LBUTTON = 1

Virtual Key Code constants

VK_LCONTROL = 162
VK_LEFT = 37
VK_LMENU = 164
VK_LSHIFT = 160

Modifier keys (left/right specific)

VK_LWIN = 91

Windows keys

VK_M = 77
VK_MBUTTON = 4
VK_MENU = 18
VK_MULTIPLY = 106
VK_N = 78
VK_NEXT = 34
VK_NUMLOCK = 144

Lock keys

VK_NUMPAD0 = 96

Numpad keys

VK_NUMPAD1 = 97
VK_NUMPAD2 = 98
VK_NUMPAD3 = 99
VK_NUMPAD4 = 100
VK_NUMPAD5 = 101
VK_NUMPAD6 = 102
VK_NUMPAD7 = 103
VK_NUMPAD8 = 104
VK_NUMPAD9 = 105
VK_O = 79
VK_OEM_1 = 186

Symbol keys

VK_OEM_2 = 191
VK_OEM_3 = 192
VK_OEM_4 = 219
VK_OEM_5 = 220
VK_OEM_6 = 221
VK_OEM_7 = 222
VK_OEM_COMMA = 188
VK_OEM_MINUS = 189
VK_OEM_PERIOD = 190
VK_OEM_PLUS = 187
VK_P = 80
VK_PAUSE = 19
VK_PRINT = 42
VK_PRIOR = 33
VK_Q = 81
VK_R = 82
VK_RBUTTON = 2
VK_RCONTROL = 163
VK_RETURN = 13
VK_RIGHT = 39
VK_RMENU = 165
VK_RSHIFT = 161
VK_RWIN = 92
VK_S = 83
VK_SCROLL = 145
VK_SELECT = 41
VK_SEPARATOR = 108
VK_SHIFT = 16
VK_SNAPSHOT = 44
VK_SPACE = 32
VK_SUBTRACT = 109
VK_T = 84
VK_TAB = 9
VK_U = 85
VK_UP = 38
VK_V = 86
VK_W = 87
VK_X = 88
VK_XBUTTON1 = 5
VK_XBUTTON2 = 6
VK_Y = 89
VK_Z = 90

Instance Method Summary

Instance Method Detail

def get_key_combination(char : Char) : Tuple(Int32, Bool) #

Get key combination for a character


[View source]
def get_vk_code(key : Int32) : Int32 #

Convert key name to virtual key code (Int32 overload)


[View source]
def get_vk_code(key : Symbol) : Int32 #

Convert key name to virtual key code (Symbol overload)


[View source]
def get_vk_code(key : String) : Int32 #

Convert key name to virtual key code (String overload)


[View source]
def requires_shift?(char : Char) : Bool #

Check if a character requires Shift key


[View source]