ruby - 如何使用 Ruby 将键盘和鼠标命令发送到底层操作系统?

标签 ruby keyboard mouseevent

是否有操作系统中立的方式让 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!")

关于ruby - 如何使用 Ruby 将键盘和鼠标命令发送到底层操作系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1446327/

相关文章:

ruby-on-rails - 如何在 Ruby 中从 Savon 调用此安全 Web 服务 WSDL?

ruby - 欧拉计划 #50 - 连续素数和 - Ruby

ruby - 是 &method( :method_name) idiom bad for performance in Ruby?

javascript - 浏览器监听多个按键按下js

android - 电话 : numeric keyboard for text input

ruby-on-rails - Ruby Geocoder 如何设置最小.near距离

c++ - 如何使用键盘输入和 sf::Text 在 SFML 中添加一种文本框来显示文本字符串?

c++ - 声明在 Qt 中发生鼠标事件时调用的函数

linux - 生成 Linux X11 事件?

c# - 在 ContainerControl C#.NET 中检测鼠标位置