如何用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
相关产品推荐
相关产品推荐

