如何在ruby脚本中获取屏幕分辨率(高度,宽度)?
答案 0 :(得分:3)
答案 1 :(得分:2)
Ruby没有GUI的概念。你需要使用类似Ruby Xlib Wrapper之类的东西。
答案 2 :(得分:2)
这就是我解决了解决问题的方法。当我使用Ruby 2.3.0时,我无法使用DL模块(因为它已被删除)。以下是使用Fiddle
usr32=Fiddle::dlopen("user32")
gsm=Fiddle::Function.new(usr32["GetSystemMetrics"],[Fiddle::TYPE_LONG],Fiddle::TYPE_LONG)
x= gsm.call(0)
y= gsm.call(1)
puts x,y
答案 3 :(得分:1)
我用tput
解决了它,
e.g。
cols = %x[tput cols].to_i
答案 4 :(得分:0)
我在寻找有关如何处理多显示器设置的解决方案时遇到了此页面,因此我将添加我在此处找到的内容。对我来说,最好的解决方案是使用Qt,可以按如下方式完成:
require 'Qt4'
desktop = Qt::DesktopWidget.new
desktop.screenGeometry(desktop.primaryScreen)
screenGeometry
返回的对象是QRect
,其高度,宽度和a whole bunch of other potentially useful attributes。显然这是专门用于主屏幕的,但您也可以使用desktop.numScreens
来确定有多少个屏幕并单独检查它们。
我意识到这个问题很老,但希望这对某人有用。
答案 5 :(得分:0)
require 'dl/import'
require 'dl/struct'
SM_CXSCREEN = 0
SM_CYSCREEN = 1
user32 = DL.dlopen("user32")
get_system_metrics = user32['GetSystemMetrics', 'ILI']
x, tmp = get_system_metrics.call(SM_CXSCREEN,0)
y, tmp = get_system_metrics.call(SM_CYSCREEN,0)
puts "#{x} x #{y}"