是否有ruby宝石可以实现跨平台鼠标操作?

我需要能够以编程方式触发特定坐标处的鼠标单击.我发现AutoIt和auto_click gem都可以提供这种能力,但仅限于 Windows.我还发现了rautomation gem,旨在提供跨平台功能,但目前似乎不支持Windows以外的任何其他功能.

还有其他任何宝石允许直接从Ruby自动鼠标点击特定的x / y坐标吗?

解决方法

我认为这是一个严重依赖系统的任务.您应该为代码提供一种加载系统相关宝石的方法(Win上的AutoIt,Linux上的Automations).如果您的目标是Mac OS,则可以通过FFI库从CGRemoteOperation.h调用CGPostMouseEvent来构建自己的lib.

例如:

要求’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)

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...