2011-09-26 60 views
4

我需要能夠以編程方式在特定座標處觸發鼠標點擊。我發現AutoIt和auto_click gem都可以提供這種功能,但只能在Windows上使用。我還發現了旨在提供跨平臺功能的rautomation gem,但目前似乎並未支持Windows以外的任何其他功能。有沒有可以實現跨平臺鼠標操作的紅寶石寶石?

是否有任何其他的寶石允許直接從Ruby的特定x/y座標自動點擊鼠標?

+0

也許這可以幫助你https://github.com/Quintus/Automations/ – derp

回答

2

我認爲這是一個高度依賴系統的任務。您應該提供代碼來加載系統相關的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) 
+0

偉大的東西,謝謝。 – lottscarson

1

rumouse寶石看看。它提供了簡單的API並支持linux,osx和windows。