无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 255|回复: 6
打印 上一主题 下一主题

[求助] 如何用bat获取所有扩展屏幕的像素分辨率?

  [复制链接]
跳转到指定楼层
1#
发表于 昨天 19:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
度娘了一段,用dxdiag的方法,如下,还有更快速的方法吗?
  1. [url=home.php?mod=space&uid=336905]@echo[/url] off
  2. echo 正在获取所有显示器分辨率信息...

  3. REM 创建一个临时文件来存储dxdiag的输出
  4. setlocal enabledelayedexpansion
  5. set "tempFile=dxdiag_output.txt"

  6. REM 使用dxdiag命令生成诊断信息文本文件
  7. dxdiag /t %tempFile%

  8. REM 初始化变量

  9. REM 读取生成的文本文件并提取显示器分辨率信息
  10. for /f "tokens=2 delims=:" %%a in ('findstr /i /C:"Current Mode:" dxdiag_output.txt') do (
  11.         echo 显示器分辨率: !resolution! x %%a

  12.     )

  13. echo 完成!
  14. pause
复制代码


2#
发表于 昨天 20:28 | 只看该作者
批处理可以直接调用 WMIC,如果用批处理调用 VBS的话,刚好以前写过宽度这一段:
  1. Function GetScreenTureWidth() '取屏幕最高分辨率宽度
  2.         Set colItems = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_VideoController", "WQL",wbemFlagReturnImmediately + wbemFlagForwardOnly)
  3.         For Each objItem In colItems:GetScreenTureWidth=objItem.CurrentHorizontalResolution:Next
  4. End Function
复制代码

批处理貌似更简单,不知道你想用分辨率来做什么,但需要注意一下的是,即使有了分辨率,还要重视缩放比例。




点评

有多个显示器,想获取"扩展屏幕"的分辨率,不是主显的分辨率,找不到更好的办法,似乎都有一定延迟  详情 回复 发表于 昨天 20:42
回复

使用道具 举报

3#
发表于 昨天 20:31 | 只看该作者
刚试了用文心一言直接写了个,试了下可以用:
wmic path Win32_VideoController get VideoModeDescription /value
回复

使用道具 举报

4#
 楼主| 发表于 昨天 20:42 | 只看该作者
9zhmke 发表于 2024-12-22 20:28
批处理可以直接调用 WMIC,如果用批处理调用 VBS的话,刚好以前写过宽度这一段:
批处理貌似更简单,不知 ...

有多个显示器,想获取"扩展屏幕"的分辨率,不是主显的分辨率,找不到更好的办法,似乎都有一定延迟
回复

使用道具 举报

5#
发表于 昨天 20:48 | 只看该作者
没有其它显示器,没有测试出dxdiag有任何延迟。
回复

使用道具 举报

6#
发表于 3 小时前 | 只看该作者
谢谢分享
回复

使用道具 举报

7#
发表于 9 分钟前 | 只看该作者
来了解下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-12-23 13:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表