无忧启动论坛

标题: 如何用bat获取所有扩展屏幕的像素分辨率? [打印本页]

作者: Myptour    时间: 昨天 19:51
标题: 如何用bat获取所有扩展屏幕的像素分辨率?
度娘了一段,用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
复制代码



作者: 9zhmke    时间: 昨天 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
复制代码

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





作者: 9zhmke    时间: 昨天 20:31
刚试了用文心一言直接写了个,试了下可以用:
wmic path Win32_VideoController get VideoModeDescription /value
作者: Myptour    时间: 昨天 20:42
9zhmke 发表于 2024-12-22 20:28
批处理可以直接调用 WMIC,如果用批处理调用 VBS的话,刚好以前写过宽度这一段:
批处理貌似更简单,不知 ...

有多个显示器,想获取"扩展屏幕"的分辨率,不是主显的分辨率,找不到更好的办法,似乎都有一定延迟
作者: nttwqz    时间: 昨天 20:48
没有其它显示器,没有测试出dxdiag有任何延迟。
作者: dwso    时间: 7 小时前
谢谢分享
作者: guong    时间: 4 小时前
来了解下




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3