找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 1498|回复: 7

[系统相关] 求助:获取系统当前显示分辨率的简单方法、批处理和小工具?

[复制链接]
发表于 2026-1-1 19:00:36 | 显示全部楼层 |阅读模式
求助获取系统当前显示分辨率的简单方法、批处理和小工具?
发表于 2026-1-1 19:57:07 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-1-3 10:19 编辑

回复 1# daixq021

win11 25H2 开始彻底切割 wmic 功能,24H2 已禁止 mshta 命令行代码启运方式(但保留了 mshta 文件代码的启运方式),因此为兼容 win7-11,给出以下仅调用 powershell 功能的批处代码...

  1. @echo off &setlocal &for /f %%a in ('powershell "$w=Get-WmiObject Win32_VideoController; $w.CurrentHorizontalResolution; $w.CurrentVerticalResolution" ') do if defined x (set "y=%%a") else set "x=%%a"
  2. echo,%x%x%y%&pause&exit/b
复制代码
发表于 2026-1-2 07:38:39 | 显示全部楼层
回复 1# daixq021
  1. @echo off
  2. for /f "tokens=1,3" %%i in ('reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\UnitedVideo" /s') do (
  3.     if "%%i" equ "DefaultSettings.XResolution" (
  4.         set /a ScreenWidth=%%j
  5.     ) else (
  6.         if "%%i" equ "DefaultSettings.YResolution" (
  7.             set /a ScreenHeight=%%j
  8.         )
  9.     )
  10. )
  11. echo ScreenWidth=%ScreenWidth%
  12. echo ScreenHeight=%ScreenHeight%
  13. pause
复制代码
发表于 2026-1-3 19:51:36 | 显示全部楼层
本帖最后由 jiavip 于 2026-1-3 20:04 编辑

额, VBS,,,兼容的系统版本多点,,,
以下代码,存VBS 或 BAT 都可以运行。。。
  1. '&cls&Cscript.exe -e:Vbscript -nologo %0&pause>nul&exit
  2. Set i=CreateObject("htmlfile"):With i.parentWindow.screen:wsh.echo .width,"x",.height:End With
复制代码
发表于 2026-1-3 21:18:15 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-1-3 21:38 编辑


用 htmlfile 接口获取的分辨率是 ie 浏览器当前主窗口的分辨率,其值经过系统设置的物理分辨率和缩放比例/DPI等因素合算后的结果,2楼代码用 win32 接口获取的就是系统设置的物理分辨率,与当前具体应用界面特性无关。
发表于 2026-2-5 14:24:27 | 显示全部楼层
  1. @echo off
  2. powershell -Command "$i=1; Add-Type -AssemblyName System.Windows.Forms; [System.Windows.Forms.Screen]::AllScreens | %%{ Write-Host "显示器 $i"; Write-Host "  设备标识:$($_.DeviceName)"; Write-Host "  分辨率:$($_.Bounds.Width) × $($_.Bounds.Height)"; Write-Host "  类型:$($(if($_.Primary) {'主显示器'} else {'扩展显示器'}))"; Write-Host ""; $i++ }"

  3. echo 检测完成:以上为当前系统实时生效的显示器信息
  4. pause >nul
复制代码
 楼主| 发表于 2026-2-21 23:19:06 | 显示全部楼层
谢谢各位,powershell有些太大。
我找到了Nir Soft 免费小工具系列中的MultiMonitorTool软件就能够获取相关信息。
发表于 2026-2-22 12:03:06 | 显示全部楼层
本帖最后由 aloha20200628 于 2026-2-22 12:11 编辑

回复 7# daixq021

系统没有预装 powershell 大概仍是在用 win7,那就直接用 wmic 一行流了...

  1. @echo off &for /f "delims=" %%v in ('wmic path Win32_VideoController get VideoModeDescription^|find " x " ') do echo,%%v
  2. pause&exit/b
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 04:23 , Processed in 0.019443 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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