微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否有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)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐