Ruby是否有一种与操作系统无关的方式将键盘和鼠标事件发送到底层操作系统?

对我而言,一种显而易见的方法是使用Ruby/Java绑定(bind)并使用java.awt.Robot,但这似乎很愚蠢。

最佳答案

(对于Mac):

gem install rb-appscript

然后,您可以使用以下脚本进行测试:
require "rubygems"
require "appscript"
include Appscript

app("TextEdit").activate
app("System Events").keystroke("Look Ma, keystrokes!")

对于Windows:(未经测试,borrowed from this thread)
require "win32ole"

wsh = WIN32OLE.new("WScript.Shell")
wsh.Run("Notepad.exe")
while not wsh.AppActivate("Notepad")
  sleep .1
end
wsh.SendKeys("Look Ma, keystrokes!")

10-07 13:07