Существует ли рубиновый драгоценный камень, позволяющий манипулировать мышью на разных платформах? - PullRequest
4 голосов
/ 26 сентября 2011

Мне нужна возможность программно вызывать щелчок мышью по определенным координатам. Я нашел AutoIt и самоцвет auto_click, которые предположительно предоставляют эту возможность, но только в Windows. Я также нашел драгоценность rautomation, которая нацелена на обеспечение кроссплатформенных возможностей, но в настоящее время, похоже, не поддерживает ничего, кроме Windows.

Существуют ли другие жемчужины, которые позволяют автоматизировать щелчки мышью по определенным координатам x / y непосредственно из Ruby?

Ответы [ 2 ]

2 голосов
/ 29 сентября 2011

Я думаю, что это сильно зависит от системы.Вы должны предоставить свой код способ загрузки системно-зависимых гемов (AutoIt на Win, Automations на Linux).Если вы нацелены на Mac OS, вы можете создать свою собственную библиотеку, вызвав CGPostMouseEvent из CGRemoteOperation.h через библиотеку FFI.

Например:

require 'ffi'

module Mouse
  extend FFI::Library
  ffi_lib '/System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics'

  class CGPoint < FFI::Struct
    layout :x, :double, :y, :double 
  end

  attach_function :CGPostMouseEvent, [ CGPoint, :bool, :int, :bool ], :void
end

point = Mouse::CGPoint.new
point[:x] = 100
point[:y] = 100

Mouse::CGPostMouseEvent(point, true, 1, true)
1 голос
/ 25 февраля 2014

Взгляните на ромовую жемчужину.Он предоставляет простой API и поддерживает Linux, OSX и Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...