无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6972|回复: 20
打印 上一主题 下一主题

[已解决] 获取仍在连接的最大显示器的分辨率(单、多显示器通用)

[复制链接]
1#
发表于 2016-12-10 21:33:00 | 显示全部楼层
这样再运行上面的代码就一定能获取有效的分辨率。


楼主这是想干嘛?我记得多显示器重新连接好像会记住设置的
回复

使用道具 举报

2#
发表于 2016-12-11 09:45:50 | 显示全部楼层
楼主的意思是这样的吗?

查找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTRO
L\VIDEO\{84F85163-5FAD-4F8A-9541-40996D6481C1}所有,Attach.ToDesktop数据为0x1的子项,找出这些子项中DefaultSettings.XResolution和DefaultSettings.YResolution最大的一对,算成10进制,需不需要提供最大值所在的组册表路径,最大值以XResolution还是以YResolution为准?
回复

使用道具 举报

3#
发表于 2016-12-11 17:08:29 | 显示全部楼层


  1. @echo off
  2. color 3f
  3. rem 查找%regpath%中所有子项中%regname%的数据是%regdata%时,DefaultSettings.XResolution和DefaultSettings.YResolution的大小,并对结果两者的乘积从大到小排序
  4. rem 鉴于reg命令XP和Win7+不同,故需要Win7以上系统,Win8.1测试通过!
  5. setlocal enabledelayedexpansion
  6. set regpath=HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO
  7. set regname=Attach.ToDesktop
  8. set regdata=0x1
  9. del %temp%\abcd.tmp /f /q >nul 2>nul
  10. rem 查找指定键值和数据所在的项
  11. rem 查找所有子项
  12. for /f "delims=" %%X in ('reg query "%regpath%" /s /f * /k') do (
  13.         rem 在所有子项中查找含有指定键值的项
  14.         for /f "tokens=1,2 delims=:" %%Y in ('reg query "%%X" /v "%regname%" 2^>nul ^| findstr /n .') do (
  15.                 rem 在含有指定键值的项中查找含有特定数据的项
  16.                 if %%Y==2 set regpathok=%%Z
  17.                 if %%Y==3 (
  18.                         echo %%Z | findstr /i /c:"%regdata%" >nul 2>&1
  19.                         if !errorlevel!==0 (
  20.                                 rem 查找完毕,此处的变量regpathok就是指定键值和数据所在的项
  21.                                 for /f "tokens=1,2 delims=:" %%a in ('reg query "!regpathok!" /v "DefaultSettings.?Resolution" ^| findstr /n .') do (
  22.                                         if %%a==2 set AAA=%%b
  23.                                         if %%a==3 for /f "tokens=3" %%c in ("%%b") do set /a XRES=%%c
  24.                                         if %%a==4 for /f "tokens=3" %%d in ("%%b") do set /a YRES=%%d
  25.                                         if %%a==6 set /A XYRES=!XRES!*!YRES! && echo !XYRES!          !XRES!×!YRES!                          !AAA! >>%temp%\abcd.tmp
  26.                                 )
  27.                         )
  28.                 )
  29.         )
  30. )
  31. sort %temp%\abcd.tmp /o %temp%\abcd_sort.txt
  32. echo 计算结果          分辨率                          注册表路径 >%temp%\abcd_sortb.txt
  33. type %temp%\abcd_sort.txt>>%temp%\abcd_sortb.txt
  34. start %temp%\abcd_sortb.txt
  35. exit
复制代码

点评

太感谢您的回复了。你的代码也能完美实现目的。 您的代码的思路,对于我的另一个目的有关联。还想请您再帮助。 1,在Extensions目录下,存在着一些子目录,名称不固定。 2,这些子目录下,都各自存在一个子目  详情 回复 发表于 2016-12-12 10:34
回复

使用道具 举报

4#
发表于 2016-12-11 17:10:52 | 显示全部楼层
  1. 测试结果

  2. 计算结果          分辨率                          注册表路径
  3. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{2756EFE0-141B-417C-8C60-EBE9120A8CE4}\0000  
  4. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{2756EFE0-141B-417C-8C60-EBE9120A8CE4}\0000\Mon040F0400  
  5. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{68406533-4ED4-4540-9848-B9D678A7B02C}\0000  
  6. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{B1FA947A-67EB-4A40-93DB-691D2D5B10B4}\0000  
  7. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{D1AE77D7-21DA-4BC8-9393-A893FFA87807}\0000  
  8. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{D1AE77D7-21DA-4BC8-9393-A893FFA87807}\0000\Mon040F0400  
  9. 2073600          1920×1080                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{DC19E068-0AD4-4D51-ACBE-67C7CB00CED0}\0000  
  10. 786432          1024×768                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{0790EF58-A28C-4FE8-8D55-C0EF3DCB17C0}\0000  
  11. 786432          1024×768                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{2776978B-DD19-4AA0-A9F6-C0CD9ABA7DE0}\0000  
  12. 786432          1024×768                          HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\UnitedVideo\CONTROL\VIDEO\{2776978B-DD19-4AA0-A9F6-C0CD9ABA7DE0}\0000\Mon54445648  
复制代码
回复

使用道具 举报

5#
发表于 2016-12-12 17:26:46 来自手机 | 显示全部楼层
houxiren 发表于 2016-12-12 10:34
太感谢您的回复了。你的代码也能完美实现目的。

您的代码的思路,对于我的另一个目的有关联。还想请 ...

说白了就是精简掉多余的语言文件?

搜索一下,删除不就可以了……
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-1 00:46

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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