[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 yakeyun 于 2023-1-15 14:25 编辑

回复 1# bcetl


既然只使用仅当前屏幕和扩展2种状态,那么直接检测当前系统的分辨率就可以了。如果分辨率屏幕宽度数值大于当前屏幕值,就属于扩展模式。反之相等就是仅当前屏幕模式。

弄错了,是检测截图的图片尺寸。借助了第三方截图工具(Snipaste),可以全屏截图2个屏幕,如果有更好的截图工具替代更好。
  1. @echo off & setlocal enabledelayedexpansion
  2. cd /d %~dp0
  3. if exist JT.jpg del JT.jpg
  4. if exist JT.txt del JT.txt
  5. :RUN
  6. @Start Snipaste.exe snip --full -o .\JT.jpg
  7. timeout -t 2 >NUL
  8. IF NOT EXIST JT.jpg GOTO RUN
  9. ::设置要搜索的图片格式
  10. set Pic=JT.jpg
  11. ::设置要搜索的文件主路径
  12. set DirPath=.\
  13. call :CreatVBS
  14. timeout -t 2 >NUL
  15. cd /d "%DirPath%"
  16. (for /f "delims=" %%a in ('dir /a-d/s/b %Pic%') do (
  17.     for /f "tokens=1-4 delims=x" %%b in ('cscript -nologo "%tmp%\GetImgInfo.vbs" "%%~sa"') do (
  18.         echo 文件名: %%~nxa    像素: %%~bx%%~c  原始格式: %%~e 路径: %%~dpa
  19.     )
  20. ))>"%~dp0JT.txt"
  21. timeout -t 2 >NUL
  22. for /f %%a in ('type "JT.TXT" ^|find "1920x1080"') do set DPI=1
  23. if defined DPI (displayswitch /extend)
  24. if NOT defined DPI (displayswitch /internal)
  25. EXIT
  26. :CreatVBS
  27. (echo '获取图片文件的宽、高、DPI、格式
  28. echo On Error Resume Next
  29. echo Dim Img
  30. echo Set Img = CreateObject^("WIA.ImageFile"^)
  31. echo Img.LoadFile WScript.Arguments^(0^)
  32. echo Wscript.Echo Img.Width ^& "x" ^& Img.Height ^& "x" ^& Img.HorizontalResolution ^& "x" ^& Img.FileExtension)>"%tmp%\GetImgInfo.vbs"
  33. goto :eof
复制代码
测试文件包:https://sanli.lanzoub.com/iokSL0l21gof

TOP

返回列表