Sha256: 4943be102e99389814e80e977d9c82032e2cd8adabd6b4be38511c65b3ac6572

Contents?: true

Size: 1.28 KB

Versions: 17

Compression:

Stored size: 1.28 KB

Contents

module RAutomation
  module Adapter
    module Win32
      class Mouse
        def initialize(window)
          @window = window
        end

        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

        def position
          Functions.get_cursor_pos
        end

        def click
          send_input down_event, up_event
        end

        def press
          send_input down_event
        end

        def release
          send_input up_event
        end

        private

        def send_input *inputs
          @window.activate
          Functions.send_input inputs.size, inputs.join, inputs[0].size
        end

        def down_event
          input Constants::MOUSEEVENTF_LEFTDOWN
        end

        def up_event
          input Constants::MOUSEEVENTF_LEFTUP
        end

        def input flag
          mouse_input = Array.new(7, 0)
          mouse_input[0] = Constants::INPUT_MOUSE
          mouse_input[4] = flag
          mouse_input.pack "L*"
        end

      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
rautomation-0.17.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.16.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.15.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.14.1 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.14.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.13.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.12.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.11.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.10.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.9.4 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.9.3 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.9.2 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.9.1 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.9.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.8.0 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.7.3 lib/rautomation/adapter/win_32/mouse.rb
rautomation-0.7.2 lib/rautomation/adapter/win_32/mouse.rb