加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-17 02:16:01 所属栏目:百科 来源:网络整理
导读:我需要能够以编程方式触发特定坐标处的鼠标单击.我发现AutoIt和auto_click gem都可以提供这种能力,但仅限于 Windows.我还发现了rautomation gem,旨在提供跨平台功能,但目前似乎不支持Windows以外的任何其他功能. 还有其他任何宝石允许直接从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)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读