我如何在ruby中触发键盘事件?

时间:2014-09-09 11:48:40

标签: ruby macos keyboard

我想触发某些按键,例如输入 esc 和箭头键。我已经用Google搜索了,并且对于无法找到解决方案感到惊讶。

修改

更具体地说,我想通过ruby脚本触发一些全局键盘快捷键。

1 个答案:

答案 0 :(得分:1)

在OS X上,您可以使用AppleScript执行此操作。这是执行键盘快捷键 cmd + alt + ctrl + W

tell application "System Events" 
  keystroke "w" using {control down, option down, command down}
end tell

对于箭头键,请使用key code代替keystroke

# Key codes for arrow keys:
# 
# LEFT  123
# RIGHT 124
# UP    126
# DOWN  125

tell application "System Events" 
  key code 123 using {control down, option down, command down}
end tell

您可以通过shell osascript来调用Ruby中的AppleScript:

def osascript(script)
  system 'osascript', *script.split(/\n/).map { |line| ['-e', line] }.flatten
end

osascript <<-END
  tell application "System Events" 
    keystroke "w" using {control down, option down, command down}
  end tell
END

来源