Я думаю, что это сильно зависит от системы.Вы должны предоставить свой код способ загрузки системно-зависимых гемов (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)