You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Ruby在Windows系统中获取屏幕分辨率?

嘿,我来给你分享几个在Windows系统里用Ruby获取屏幕分辨率的简单法子,都是亲测好使的:

方法1:用Windows自带的wmic命令(无需额外依赖)

这应该是最省事的方案了,不用装任何Ruby gem,直接调用Windows原生命令就能拿到数据:

# 调用wmic获取屏幕分辨率参数
output = `wmic desktopmonitor get screenwidth, screenheight /value`
# 解析输出内容,提取宽高值
resolution_lines = output.split("\n").map(&:strip).reject(&:empty?)
width = resolution_lines.find { |line| line.start_with?("ScreenWidth") }.split("=").last.to_i
height = resolution_lines.find { |line| line.start_with?("ScreenHeight") }.split("=").last.to_i

puts "当前屏幕分辨率:#{width}×#{height}"

小提示:如果是多显示器环境,这个命令会返回所有显示器的分辨率数据,你可以根据需求进一步筛选。

方法2:用win32-api gem调用Windows API(更Ruby化)

如果你希望用更贴合Ruby风格的方式实现,可以借助win32-api这个gem来调用Windows系统API:

首先安装依赖:

gem install win32-api

然后编写代码:

require 'win32-api'

# 加载user32.dll并定义GetSystemMetrics函数
user32 = Win32::API.new('GetSystemMetrics', 'I', 'I', 'user32')
# 系统常量:SM_CXSCREEN代表屏幕宽度,SM_CYSCREEN代表屏幕高度
SM_CXSCREEN = 0
SM_CYSCREEN = 1

# 调用API获取分辨率
screen_width = user32.call(SM_CXSCREEN)
screen_height = user32.call(SM_CYSCREEN)

puts "当前屏幕分辨率:#{screen_width}×#{screen_height}"

注意:这个方法默认返回主显示器的分辨率,如果需要处理多显示器,还需要结合其他API进一步实现。

内容的提问来源于stack exchange,提问作者user4706184

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:46:55