Batch file 批处理文件-发现的解析
我试图找出一种方法,通过批处理文件检测用户分辨率是否高于或低于“1280 x 1024” 如果分辨率为“1280 x 1024”或更高,则执行A。否则执行B 有人知道怎么做吗 干杯Batch file 批处理文件-发现的解析,batch-file,screen-resolution,Batch File,Screen Resolution,我试图找出一种方法,通过批处理文件检测用户分辨率是否高于或低于“1280 x 1024” 如果分辨率为“1280 x 1024”或更高,则执行A。否则执行B 有人知道怎么做吗 干杯 Elliott这有点棘手,原因如下: 分辨率在注册表中,您可以使用reg.exe查询该分辨率。然而,这并不容易找到。对我来说,这是在 HKLM\SYSTEM\CurrentControlSet\Control\Video\{7FD4F64D-A7B2-41A9-AEEB-835BE4473FFA}\0000 在De
Elliott这有点棘手,原因如下:
reg.exe
查询该分辨率。然而,这并不容易找到。对我来说,这是在
HKLM\SYSTEM\CurrentControlSet\Control\Video\{7FD4F64D-A7B2-41A9-AEEB-835BE4473FFA}\0000
在DefaultSettings.XResolution
和DefaultSettings.YResolution
中。但是,GUID可能因您拥有的显卡和驱动程序而异,因此您必须在HKLM\SYSTEM\CurrentControlSet\Control\video
下进行迭代@echo off
setlocal enabledelayedexpansion
for /f "delims=" %%l in ('reg query HKLM\SYSTEM\CurrentControlSet\Control\Video') do (
reg query %%l\0000 /v DefaultSettings.XResolution >nul 2>&1
if not errorlevel 1 (
for /f "skip=1 tokens=3 delims= " %%x in ('reg query %%l\0000 /v DefaultSettings.XResolution') do (
set /a X=%%x
)
for /f "skip=1 tokens=3 delims= " %%x in ('reg query %%l\0000 /v DefaultSettings.YResolution') do (
set /a Y=%%x
)
)
)
echo Resolution: %X% × %Y%
if %X% GTR 1280 if %Y% GTR 1024 echo Greater than 1280 × 1024.
作为注册表的替代方案,您还可以通过
Wmic
:wmic desktopmonitor,其中可用性=3获取屏幕高度、屏幕宽度
有关Win32_DesktopMonitor类的详细信息,请参见:
请注意,如果连接了多个监视器,可能会得到多行-您应该在脚本中处理这些情况 在我的例子中,
wmic desktopmonitor
不返回任何内容
这个在Win 8.1上对我有效
@ECHO OFF
for /f "delims=" %%# in ('"wmic path Win32_VideoController get CurrentHorizontalResolution,CurrentVerticalResolution /format:value"') do (
set "%%#">nul
)
echo %CurrentHorizontalResolution%
echo %CurrentVerticalResolution%
我想我会说,如果其中一个值低于我所说的值,那么应该执行B;你应该能从那里适应。嗯,我真蠢。WMI应该是显而易见的答案。这篇文章似乎与[这篇文章][1]^^[1]相似: