Module: TwitchPlays::OS::Win
- Defined in:
- lib/twitch_plays/os/win.rb
Defined Under Namespace
Modules: User32
Constant Summary collapse
- TRANSLATE_KEYS =
{ 'BackSpace' => User32::VK_BACK, 'Tab' => User32::VK_TAB, 'Return' => User32::VK_RETURN, 'Shift_L' => User32::VK_SHIFT, 'Shift_R' => User32::VK_SHIFT, 'Control_L' => User32::VK_CONTROL, 'Control_R' => User32::VK_CONTROL, 'space' => User32::VK_SPACE, 'Left' => User32::VK_LEFT, 'Up' => User32::VK_UP, 'Right' => User32::VK_RIGHT, 'Down' => User32::VK_DOWN, 'F1' => User32::VK_F1, 'F2' => User32::VK_F2, 'F3' => User32::VK_F3, 'F4' => User32::VK_F4, 'F5' => User32::VK_F5, 'F6' => User32::VK_F6, 'F7' => User32::VK_F7, 'F8' => User32::VK_F8, 'F9' => User32::VK_F9, 'F10' => User32::VK_F10, 'F11' => User32::VK_F11, 'F12' => User32::VK_F12 }
Class Method Summary collapse
Class Method Details
.press(key) ⇒ Object
99 100 101 102 103 104 105 106 107 108 109 |
# File 'lib/twitch_plays/os/win.rb', line 99 def self.press(key) input = User32::Input.new input[:type] = User32::INPUT_KEYBOARD evt = input[:evt][:ki] evt[:vk] = TRANSLATE_KEYS[key] || key.upcase.ord evt[:scan] = 0 evt[:flags] = 0 evt[:time] = 0 evt[:extra_info] = 0 User32.SendInput(1, [input], User32::Input.size) end |
.touch_move(dx, dy) ⇒ Object
111 112 113 114 115 116 117 118 119 120 121 122 |
# File 'lib/twitch_plays/os/win.rb', line 111 def self.touch_move(dx, dy) input = User32::Input.new input[:type] = User32::INPUT_MOUSE evt = input[:evt][:mi] evt[:dx] = dx evt[:dy] = dy evt[:mouse_data] = 0 evt[:flags] = User32::MOUSEEVENTF_MOVE evt[:time] = 0 evt[:extra_info] = 0 User32.SendInput(1, [input], User32::Input.size) end |
.touch_press ⇒ Object
124 125 126 127 128 129 130 131 132 133 134 135 |
# File 'lib/twitch_plays/os/win.rb', line 124 def self.touch_press input = User32::Input.new input[:type] = User32::INPUT_MOUSE evt = input[:evt][:mi] evt[:dx] = 0 evt[:dy] = 0 evt[:mouse_data] = 0 evt[:flags] = User32::MOUSEEVENTF_LEFTDOWN evt[:time] = 0 evt[:extra_info] = 0 User32.SendInput(1, [input], User32::Input.size) end |
.touch_release ⇒ Object
137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/twitch_plays/os/win.rb', line 137 def self.touch_release input = User32::Input.new input[:type] = User32::INPUT_MOUSE evt = input[:evt][:mi] evt[:dx] = 0 evt[:dy] = 0 evt[:mouse_data] = 0 evt[:flags] = User32::MOUSEEVENTF_LEFTUP evt[:time] = 0 evt[:extra_info] = 0 User32.SendInput(1, [input], User32::Input.size) end |