Module: Terminitor::Input
- Included in:
- CurrentWindowsConsole, WindowsConsole
- Defined in:
- lib/terminitor/cores/cmd_core/input.rb
Overview
Thanks win32/autogui!
Constant Summary collapse
- VK_LBUTTON =
MSDN virtual key codes
0x01
- VK_RBUTTON =
0x02
- VK_CANCEL =
0x03
- VK_BACK =
0x08
- VK_TAB =
0x09
- VK_CLEAR =
0x0c
- VK_RETURN =
0x0d
- VK_SHIFT =
0x10
- VK_CONTROL =
0x11
- VK_MENU =
0x12
- VK_PAUSE =
0x13
- VK_ESCAPE =
0x1b
- VK_SPACE =
0x20
- VK_PRIOR =
0x21
- VK_NEXT =
0x22
- VK_END =
0x23
- VK_HOME =
0x24
- VK_LEFT =
0x25
- VK_UP =
0x26
- VK_RIGHT =
0x27
- VK_DOWN =
0x28
- VK_SELECT =
0x29
- VK_EXECUTE =
0x2b
- VK_SNAPSHOT =
0x2c
- VK_INSERT =
0x2d
- VK_DELETE =
0x2e
- VK_HELP =
0x2f
- VK_0 =
0x30
- VK_1 =
0x31
- VK_2 =
0x32
- VK_3 =
0x33
- VK_4 =
0x34
- VK_5 =
0x35
- VK_6 =
0x36
- VK_7 =
0x37
- VK_8 =
0x38
- VK_9 =
0x39
- VK_A =
0x41
- VK_B =
0x42
- VK_C =
0x43
- VK_D =
0x44
- VK_E =
0x45
- VK_F =
0x46
- VK_G =
0x47
- VK_H =
0x48
- VK_I =
0x49
- VK_J =
0x4a
- VK_K =
0x4b
- VK_L =
0x4c
- VK_M =
0x4d
- VK_N =
0x4e
- VK_O =
0x4f
- VK_P =
0x50
- VK_Q =
0x51
- VK_R =
0x52
- VK_S =
0x53
- VK_T =
0x54
- VK_U =
0x55
- VK_V =
0x56
- VK_W =
0x57
- VK_X =
0x58
- VK_Y =
0x59
- VK_Z =
0x5a
- VK_LWIN =
0x5b
- VK_RWIN =
0x5c
- VK_APPS =
0x5d
- VK_NUMPAD0 =
0x60
- VK_NUMPAD1 =
0x61
- VK_NUMPAD2 =
0x62
- VK_NUMPAD3 =
0x63
- VK_NUMPAD4 =
0x64
- VK_NUMPAD5 =
0x65
- VK_NUMPAD6 =
0x66
- VK_NUMPAD7 =
0x67
- VK_NUMPAD8 =
0x68
- VK_NUMPAD9 =
0x69
- VK_MULTIPLY =
0x6a
- VK_ADD =
0x6b
- VK_SEPARATOR =
0x6c
- VK_SUBTRACT =
0x6d
- VK_DECIMAL =
0x6e
- VK_DIVIDE =
0x6f
- VK_F1 =
0x70
- VK_F2 =
0x71
- VK_F3 =
0x72
- VK_F4 =
0x73
- VK_F5 =
0x74
- VK_F6 =
0x75
- VK_F7 =
0x76
- VK_F8 =
0x77
- VK_F9 =
0x78
- VK_F10 =
0x79
- VK_F11 =
0x7a
- VK_F12 =
0x7b
- VK_NUMLOCK =
0x90
- VK_SCROLL =
0x91
- VK_OEM_EQU =
0x92
- VK_LSHIFT =
0xa0
- VK_RSHIFT =
0xa1
- VK_LCONTROL =
0xa2
- VK_RCONTROL =
0xa3
- VK_LMENU =
0xa4
- VK_RMENU =
0xa5
- VK_OEM_1 =
US “;:”
0xba
- VK_OEM_PLUS =
0xbb
- VK_OEM_COMMA =
0xbc
- VK_OEM_MINUS =
0xbd
- VK_OEM_PERIOD =
0xbe
- VK_OEM_2 =
US “/?”
0xbf
- VK_OEM_3 =
US ‘`~’
0xc0
- VK_OEM_4 =
US “[{”
0xdb
- VK_OEM_5 =
US ‘|’
0xdc
- VK_OEM_6 =
US ‘]}’
0xdd
- VK_OEM_7 =
US quotes
0xde
- VK_OEM_8 =
none
0xdf
- KEYBD_KEYDELAY =
delay in seconds between keystrokes
0
- KEYBD_EVENT_KEYUP =
keybd_event
2
- KEYBD_EVENT_KEYDOWN =
0
Instance Method Summary collapse
-
#keystroke(*keys) ⇒ Object
Send keystroke to the focused window, keystrokes are virtual keycodes.
-
#type_in(string) ⇒ Object
String together keystrokes, simulates the user typing.
Instance Method Details
#keystroke(*keys) ⇒ Object
Send keystroke to the focused window, keystrokes are virtual keycodes
152 153 154 155 156 157 158 159 160 |
# File 'lib/terminitor/cores/cmd_core/input.rb', line 152 def keystroke(*keys) return if keys.empty? keybd_event keys.first, 0, KEYBD_EVENT_KEYDOWN, 0 sleep KEYBD_KEYDELAY keystroke *keys[1..-1] sleep KEYBD_KEYDELAY keybd_event keys.first, 0, KEYBD_EVENT_KEYUP, 0 end |
#type_in(string) ⇒ Object
String together keystrokes, simulates the user typing.
Note: This method can be slow for large strings. Consider using the clipboard instead.
174 175 176 177 178 |
# File 'lib/terminitor/cores/cmd_core/input.rb', line 174 def type_in(string) string.each_char do |char| keystroke(*char_to_virtual_keycode(char)) end end |