9

Rubyがキーボードとマウスのイベントを基盤となるオペレーティングシステムに送信するためのオペレーティングシステム中立的な方法はありますか?

(私にとって)明らかなアプローチの 1 つは、Ruby/Java バインディングを使用し、java.awt.Robot を使用することですが、それはばかげているように思えます。

4

3 に答える 3

7

Mac用:

gem install rb-appscript

次に、次のようなスクリプトでテストできます。

require "rubygems"
require "appscript"
include Appscript

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

Windows の場合: (未テスト、このスレッドから借用)

require "win32ole"

wsh = WIN32OLE.new("WScript.Shell")
wsh.Run("Notepad.exe")
while not wsh.AppActivate("Notepad")
  sleep .1
end
wsh.SendKeys("Look Ma, keystrokes!")
于 2009-09-18T20:16:18.740 に答える
5

完全を期すために、Linuxを使用している場合の解決策を含めると思いました。

Linux では、キーストロークを自動化するために xdotool を使用できます。Ruby 用の gem もありますが、キーストロークの送信が次のように簡単であることを考えると、実際には必須ではありません。

%x(xdotool key super+w) #this would press the keys super and w simultaneoulsy

マウスイベントもあります。

于 2013-06-04T11:03:37.487 に答える
0

残念ながら、rb-applescript少し時代遅れで不安定です。

Mac の場合は、次を使用できます。

%x(osascript -e 'tell application "System Events" to keystroke "Look Ma, keystrokes!"')
于 2014-09-05T15:07:41.633 に答える