class RAutomation::Adapter::Win32::Mouse

Public Class Methods

new(window) click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 5
def initialize(window)
  @window = window
end

Public Instance Methods

click() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 22
def click
  send_input down_event, up_event
end
move(coords={}) click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 9
def move(coords={})
  @last_position = coords = (@last_position || position).merge(coords)

  until position[:x] == coords[:x] && position[:y] == coords[:y]
    @window.activate
    Functions.set_cursor_pos coords[:x], coords[:y]
  end
end
position() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 18
def position
  Functions.get_cursor_pos
end
press() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 26
def press
  send_input down_event, down_event
end
release() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 30
def release
  send_input up_event, up_event
end

Private Instance Methods

down_event() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 41
def down_event
  input Constants::MOUSEEVENTF_LEFTDOWN
end
input(flag) click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 49
def input flag
  mouse_input = Array.new(7, 0)
  mouse_input[0] = Constants::INPUT_MOUSE
  mouse_input[4] = flag
  mouse_input.pack "L*"
end
send_input(*inputs) click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 36
def send_input *inputs
  @window.activate
  Functions.send_input inputs.size, inputs.join, inputs[0].size
end
up_event() click to toggle source
# File lib/rautomation/adapter/win_32/mouse.rb, line 45
def up_event
  input Constants::MOUSEEVENTF_LEFTUP
end