如何在ruby中触发键盘事件?
我想触发某些按键,如回车键、esc键和箭头键。我在谷歌上搜索过,很惊讶没有找到解决方案 编辑如何在ruby中触发键盘事件?,ruby,macos,keyboard,Ruby,Macos,Keyboard,我想触发某些按键,如回车键、esc键和箭头键。我在谷歌上搜索过,很惊讶没有找到解决方案 编辑 更具体地说,我想通过ruby脚本触发一些全局键盘快捷键。在OSX上,您可以使用AppleScript来实现这一点。下面是一个执行键盘快捷键cmd+alt+ctrl+W的示例 对于箭头键,使用键代码而不是击键: # Key codes for arrow keys: # # LEFT 123 # RIGHT 124 # UP 126 # DOWN 125 tell application "
更具体地说,我想通过ruby脚本触发一些全局键盘快捷键。在OSX上,您可以使用AppleScript来实现这一点。下面是一个执行键盘快捷键cmd+alt+ctrl+W的示例 对于箭头键,使用
键代码
而不是击键
:
# 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
您可以从Ruby中调用AppleScript,方法是将其输出到osascript
:
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
def-osascript(脚本)
系统'osascript',*script.split(/\n/).map{| line |['-e',line]}.flatten
结束
终端、浏览器、桌面窗口中的osascript关键事件?@Stefan编辑了这个问题。你能定义“全局”吗?:-)全局操作系统级快捷方式。有一个叫做AXElements的gem,可以在提供的链接中找到:)
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