Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在ruby中触发键盘事件?_Ruby_Macos_Keyboard - Fatal编程技术网

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

如何在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 "

我想触发某些按键,如回车键、esc键和箭头键。我在谷歌上搜索过,很惊讶没有找到解决方案

编辑


更具体地说,我想通过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