我需要能够以编程方式在特定坐标处触发鼠标点击。我发现AutoIt和auto_click gem都可以提供这种功能,但只能在Windows上使用。我还发现了旨在提供跨平台功能的rautomation gem,但目前似乎并未支持Windows以外的任何其他功能。有没有可以实现跨平台鼠标操作的红宝石宝石?
是否有任何其他的宝石允许直接从Ruby的特定x/y坐标自动点击鼠标?
我需要能够以编程方式在特定坐标处触发鼠标点击。我发现AutoIt和auto_click gem都可以提供这种功能,但只能在Windows上使用。我还发现了旨在提供跨平台功能的rautomation gem,但目前似乎并未支持Windows以外的任何其他功能。有没有可以实现跨平台鼠标操作的红宝石宝石?
是否有任何其他的宝石允许直接从Ruby的特定x/y坐标自动点击鼠标?
我认为这是一个高度依赖系统的任务。您应该提供代码来加载系统相关的gem(AutoIt on Win,Linux上的自动化)。如果您的目标是Mac OS,则可以通过FFI库从CGRemoteOperation.h
调用CGPostMouseEvent
来构建自己的库。
例如:
需要 '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)
伟大的东西,谢谢。 – lottscarson
在rumouse宝石看看。它提供了简单的API并支持linux,osx和windows。
也许这可以帮助你https://github.com/Quintus/Automations/ – derp