Batch file 批处理文件以获取windows 10上的当前分辨率
我尝试读取当前分辨率,当Resoltuiton不是4k时,标志为false,当它变回4k时,视频进程被终止并重新启动 但在不同的windows机器上,我总能获得屏幕上的最大分辨率Batch file 批处理文件以获取windows 10上的当前分辨率,batch-file,Batch File,我尝试读取当前分辨率,当Resoltuiton不是4k时,标志为false,当它变回4k时,视频进程被终止并重新启动 但在不同的windows机器上,我总能获得屏幕上的最大分辨率 @echo off set resolution=false :loop Set "WMIC_Command=wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVertical
@echo off
set resolution=false
:loop
Set "WMIC_Command=wmic path Win32_VideoController get VideoModeDescription^,CurrentHorizontalResolution^,CurrentVerticalResolution^ /format:Value"
Set "H=CurrentHorizontalResolution"
Set "V=CurrentVerticalResolution"
Call :GetResolution %H% HorizontalResolution
Call :GetResolution %V% VerticalResolution
echo(
echo Screen Resolution is : %HorizontalResolution% x %VerticalResolution% = %resolution%
timeout /t 2
if %HorizontalResolution% == 3840 (
if %resolution% == false (
echo "hoppla die Auflösung wurde geaendert"
TASKKILL /F /FI "WINDOWTITLE eq SHH_Wandprojektion*"
echo "Video task gekillt"
timeout /t 2
start "E:\_projekte\STADTHOEFE_HAMBURG\PROJEKTION_VIDEO\mpc-hc.exe" "E:\_projekte\STADTHOEFE_HAMBURG\PROJEKTION_VIDEO\SHH_Wandprojektion_200123b_1.mp4"
echo "und wieder geoeffnet"
set resolution=true
)
) else (
set resolution=false
)
timeout /t 3
goto loop
::****************************************************
:GetResolution
FOR /F "tokens=2 delims==" %%I IN (
'%WMIC_Command% ^| find /I "%~1" 2^>^nul'
) DO FOR /F "delims=" %%A IN ("%%I") DO SET "%2=%%A"
Exit /b
::****************************************************
另一种方法也仅打印屏幕的最大分辨率:
for /f "tokens=4,5 delims=. " %%a in ('ver') do set "version=%%a%%b"
if version lss 62 (
::set "wmic_query=wmic desktopmonitor get screenheight, screenwidth /format:value"
for /f "tokens=* delims=" %%@ in ('wmic desktopmonitor get screenwidth /format:value') do (
for /f "tokens=2 delims==" %%# in ("%%@") do set "x=%%#"
)
for /f "tokens=* delims=" %%@ in ('wmic desktopmonitor get screenheight /format:value') do (
for /f "tokens=2 delims==" %%# in ("%%@") do set "y=%%#"
)
) else (
::wmic path Win32_VideoController get VideoModeDescription,CurrentVerticalResolution,CurrentHorizontalResolution /format:value
for /f "tokens=* delims=" %%@ in ('wmic path Win32_VideoController get CurrentHorizontalResolution /format:value') do (
for /f "tokens=2 delims==" %%# in ("%%@") do set "x=%%#"
)
for /f "tokens=* delims=" %%@ in ('wmic path Win32_VideoController get CurrentVerticalResolution /format:value') do (
for /f "tokens=2 delims==" %%# in ("%%@") do set "y=%%#"
)
)
echo Resolution %x%x%y%
“但我总是能在屏幕上获得最大的分辨率”这是怎么回事?你正在专门调用CurrentResolution。我可以将显示设置为任意值,始终为4K!我使用10.0.18362.592上的“getwmiproperty.exe”获得了实际利率,我切换到python,效果非常好。我有3台机器在检查当前值时返回最大分辨率。